2017-01-18 3 views
0

J'ai lu beaucoup de suggestions au cours des derniers jours sur la façon d'obtenir l'utilisateur actuel dans mon application ASP (développé en utilisant devexpress xaf) mais jusqu'à présent rien n'a fonctionné pour moi . Les valeurs de retour deWindowsIdentity dans l'application ASP retourne toujours NT AUTHORITY SYSTEM

WindowsIdentity.GetCurrent().Name 

est toujours NT AUTHORITY \ SYSTEM. J'ai essayé des suggestions comme this et un couple trouvé dans le forum devexpress.

Ce que j'ai pensé devraient travailler est

  • mis mon application Web.config à

comprennent de

<system.web> 
    <authentication mode="Windows" /> 
    <identity impersonate="true" /> 
    <authorization> 
     <deny users="?" /> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 

(j'ai aussi essayé d'installer imporsonation ci-dessus pour false mais sans changement)

  • je crée mon site dans IIS pour utiliser l'authentification Windows enter image description here

    • réglage du pool d'applications comme celui-ci

enter image description here

Mais le résultat reste toujours AUTORITE NT \ SYSTEM.

Répondre

0

Étant donné que le "NT AUTHORITY \ SYSTEM" est membre de "Builtin \ Administrator", le rôle de serveur SYSADMIN est accordé par défaut. Par défaut, le compte système local est membre du groupe Administrateurs local et est par conséquent membre du groupe sysadmin dans SQL Server.

Pour activer l'emprunt d'identité, définissez impersonate = "true" pour l'élément d'identité dans web.config. L'emprunt d'identité peut également être activé ou désactivé depuis IIS.

  1. Sélectionnez l'application Web dans IIS
  2. Double-cliquez sur "Authentification" icône
  3. Sélectionnez ASP.NET Impersonation
  4. Cliquez sur "Désactiver" ou le lien "Activer" au titre des actions dans le panneau latéral de droite dans IIS.
  5. Cela va automatiquement changer le fichier web.config.

Définissez le "Mode pipeline géré" du DefaultAppPool sur "Classique".

Lancez l'application, et notez que, le code d'application, est maintenant exécutée, en utilisant le compte 'NT AUTHORITY \ IUSR', au lieu de 'IIS APPPOOL \ DefaultAppPool'

+0

Merci, mais comme vu dans les captures d'écran ci-dessus J'ai déjà l'emprunt d'identité activé. J'ai également modifié l'extrait de code pour être plus clair.J'ai essayé de changer le mode pipeline géré en classique mais j'ai toujours NT AUTHORITY \ SYSTEM. Où puis-je vérifier que le compte 'NT AUTHORITY \ IUSR' est utilisé, comme vous l'avez suggéré? – yiannis

+0

il suffit de renvoyer ce lien.http: //csharp-video-tutorials.blogspot.in/2012/12/anonymous-authentication-and-aspnet.html –