2010-07-29 9 views
3

Bonjour, J'écris une application intranet ASP.Net MVC à laquelle on accède via des ordinateurs de poche et une gamme de navigateurs. Mes utilisateurs ont tous des comptes AD et ont des permissions différentes sur nos vues/procs de base de données SQL en fonction de leur domaine. La base de données utilise également CURRENT_USER pour le partitionnement horizontal.Authentification Windows à SQL avec un nom d'utilisateur et un mot de passe AD dans la chaîne de connexion

En raison de la gamme de périphériques qui doivent accéder à l'application, je ne peux pas compter sur l'emprunt d'identité/délégation ou le sous-système de confiance. Je veux que l'utilisateur saisisse simplement le nom d'utilisateur et le mot de passe (même chose que AD) quand les mécanismes ci-dessus échouent.

Est-ce que quelqu'un sait comment je peux utiliser le nom d'utilisateur et mot de passe AD dans une chaîne de connexion pour accéder à la base de données sans créer un ensemble de comptes miroir SQL? Je ne peux pas me connecter avec un service réseau ou un compte proxy sql car la base de données doit être sensible à l'utilisateur.

Répondre

5

Vous ne pouvez pas le faire dans la chaîne de connexion.

Le mieux est de faire en sorte que votre code ASP.NET usurper l'identité de l'utilisateur que vous souhaitez vous connecter. Cela peut être un peu compliqué avec ASP.NET car il existe déjà une couche d'emprunt d'identité, mais c'est faisable.

Voir la section de ce MSKB article appelée "Emprunter l'identité d'un utilisateur spécifique dans le code" pour vous aider à démarrer sur le bon chemin.

+0

Bingo! Merci!!! –