Question

J'écris une application Web qui fonctionne avec Exchange et doit donc emprunter l'identité d'un compte disposant de droits d'administrateur sur Exchange. Ce compte est spécifié par l'utilisateur lors de l'installation. Quel est le meilleur moyen d'obtenir l'emprunt d'identité pour utiliser ce compte, le codage en dur dans le fichier web.config ne fonctionnera pas car il doit pouvoir changer, mais je ne suis pas sûr du meilleur moyen de le faire. De plus, je n'ai en fait besoin que de m'exécuter en tant qu'utilisateur administratif pour 1 classe. Est-il possible d'emprunter l'identité de certaines méthodes?

Était-ce utile?

La solution

J'ai posté une réponse sur l'utilisation de l'emprunt d'identité pour accéder à un partage de fichiers réseau, mais cela devrait également fonctionner pour vous. Il inclut la source d’une classe c # pouvant être utilisée pour gérer le début / la fin de l’emprunt d’emprunt d’identité et peut être utilisée par n’importe quelle classe ou méthode.

La source fournie suppose que vous stockez le nom d'utilisateur et le mot de passe dans le fichier Web.config.

Voir la question et la réponse pour plus de détails.

Autres conseils

Par le passé, j'ai utilisé LogonUser. Les liens ci-dessous fournissent des indications sur la manière de procéder.

http://blogs.msdn.com/shawnfa /archive/2005/03/21/400088.aspx

http://www.guidanceshare.com/wiki/ASP .NET_2.0_Security_Guidelines _-_ Emprunt d’identité / délégation

Vous pouvez également déterminer si vous pouvez utiliser l'emprunt d'identité Exchange et faire en sorte que votre application s'exécute sous une identité fixe qui peut emprunter l'identité dans Exchange via les services Web Exchange.

Vous pouvez le faire comme ci-dessus, mais dans ce scénario qu'est-ce qui ne va pas avec la simple modification de web.config lors de votre processus d'installation?

En plus de LogonUser, comme d'autres l'ont noté, ou de la classe WindowsImpersonationContext, vous pouvez également envisager de séparer le code privilégié. Par exemple, en tant qu’objet Enterprise Services (exécuté sous COM +). Cela vous permettrait de laisser le système d'exploitation gérer les informations d'identification, PLUS vous avez une limite de confiance intégrée autour du code privilégié.
Bien sûr, vous aurez besoin de définir des limites quant au nombre de personnes pouvant appeler cet objet, mais cela est facilement configurable ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top