6
votes

Authentification Windows - Obtenir le nom d'utilisateur actuel

Dans ma application MVC, je souhaite rendre une table dans un fichier CSHTML, si l'utilisateur de la connexion actuelle est une personne X. J'utilise l'authentification Windows et j'ai apporté les modifications suivantes dans le fichier web.config. xxx

et dans mon contrôleur lorsque j'essaie d'accéder au nom d'utilisateur actuel, je ne reçois aucun nom d'utilisateur. J'essaie ce qui suit: xxx

Cette ligne ci-dessus fonctionnait auparavant. Mais je ne sais pas ce qui va mal maintenant. Aussi, j'ai hébergé ma demande sur IIS maintenant.


0 commentaires

3 Réponses :


12
votes

Vous devez mettre l'attribut [autoriser] sur votre contrôleur.

Vous pouvez utiliser user.identity.name dans vos contrôleurs. < Pré> xxx


11 commentaires

Merci pour l'aide. Pouvez-vous simplement montrer comment je peux y parvenir.


Je viens de changer mes propriétés de projet Web pour utiliser ASP.NET Development Server. Et maintenant, je suis capable de récupérer le nom de connexion actuel dans le nom d'utilisateur. Donc, le problème est que j'hôte mon projet Web sur IIS. Une idée?


@Jash: Le code ci-dessus doit fonctionner correctement avec l'authentification Windows (même si l'accès anonyme est activé). L'avez-vous essayé dans IIS?


Yup, il fonctionne avec l'authentification Windows. Mais cela ne fonctionne pas avec IIS


Utilisateur.Identifity.name retourne string.empty


Avez-vous une solution pour cela.


Je n'ai jamais eu le même problème que toi et j'utilise Windows Auth tout le temps de faire comme je décrit ci-dessus.


Votre site est-il hébergé sur IIS. Est-ce que je dois ajouter quelque chose dans web.config


Bonjour, je viens d'ajouter l'attribut Authorize, mais après cela, il lance une erreur non autorisée 4O1.


Vous n'avez probablement pas installé la fonctionnalité d'authentification Windows dans IIS.


Si vous supprimez [Autoriser], alors le 401.0 - non autorisé va de disparaître et vous pouvez obtenir le nom d'utilisateur comme System.Security.principal.windowssidity.getCurrent (). Nom



1
votes

Un peu en retard, mais cela peut servir les autres à l'avenir.

J'ai eu le même problème une fois après le déploiement de mon site sur un nouveau serveur IIS et que l'authentification anonyme a été activée, assurez-vous que l'authentification anonyme est désactivée et qu'elle devrait fonctionner.


0 commentaires

12
votes

Regardez les propriétés du projet Web, notamment:

  1. authentification anonyme - défini sur "désactivé"
  2. Authentification Windows - définie sur "Activé"

    Par défaut, ceux-ci sont définis à l'opposé de ce que vous recherchez probablement.

    Propriétés du projet Web

    (image provenant de MSDN )


0 commentaires