L'obtention de IIS pour emprunter l'identité de l'utilisateur de windows SQL server dans un environnement intranet
Je suis en train d'élaborer un site intranet à l'aide de C# et ASP.NET MVC. J'ai SQL Server sur une machine, et qu'IIS s'exécute sur une machine distincte. Je voudrais un utilisateur à visiter le site intranet et sans intervention de l'utilisateur d'internet explorer envoie les utilisateurs les informations d'identification windows IIS et elles sont ensuite transmises à sql server sens sql server peut voir l'utilisateur accédant à la base de données.
Je suis conscient de l'Kerberos double saut problème et c'est ce que je suis en train d'essayer de se déplacer. À présent je peux obtenir IE pour transmettre les informations d'identification windows IIS et authentifier l'amende. J'ai juste ne peut pas obtenir de l'IIS à transmettre ces informations d'identification pour SQL Server et au lieu de la demande actuellement s'exécute sous l'identité du pool d'application qui est fixé à un compte de service de domaine "htu\srv-htu-iis".
Ma configuration est comme suit:
Web.Config
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="true" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
Chaîne De Connexion
connection string="data source=hturesbsqlp01;initial catalog=R2_Dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
Paramètres d'Authentification IIS
Anonymous Authentication = Disabled
ASP.NET Impersonation = Enabled
Forms Authentication = Disabled
Windows Authentication = Enabled
IIS Application Paramètres du Pool de
Managed Pipeline = Integrated
Identity = htu\srv-htu-iis (domain service account)
Paramètres Active Directory
Le compte de service de domaine htu\srv-htu-iis a eu un nom principal de service ensemble qui associe notre site avec le compte.
Active directory a
Allow Delagation to any service
SQL Server est en cours d'exécution en vertu de sa propre SQL compte de Service de Domaine.
Tests
J'ai couru le code suivant vérifie:
System.Web.HttpContext.Current.User.Identity.Name
ce renvoyer correctement les informations d'identification windows de l'utilisateur qui accède au site
System.Security.Principal.WindowsIdentity.GetCurrent().Name
retourner le compte de service de domaine "htu\srv-htu-iis", qui est ce que l'identité du pool d'application est en cours d'exécution en vertu de l'.
Quelqu'un peut-il fournir des directives quant à l'endroit où je pourrait mal se passer?
- Est-ce une charge équilibrée de l'environnement?
- Non, ce n'est pas pour autant que je suis conscient!)
- Avez-vous regardé ce DONC stackoverflow.com/questions/4618552/... et aussi celui-ci: stackoverflow.com/questions/13706580/... Ils couvrent le sujet très bien.
- TimG merci pour les messages j'ai raté ce en dépit de la recherche. Ils ont un couple d'options pour m'essayer à le matin!
- Excellente documentation - c'était notre problème: Pipeline Géré = Intégré
Vous devez vous connecter pour publier un commentaire.
Bien à tous ceux qui visitent cette question dans l'avenir. J'ai résolu ce problème en redémarrant le Service IIS...doh! Semble que mon paramètres ont été fine juste besoin d'un redémarrage complet de la service de!