Je souhaite utiliser l'authentification intégrée pour accéder à une base de données SQL à partir d'un composant WebPart. Il doit utiliser l'identité du pool d'applications IIS.SharePoint et <identity impersonate = "false" />
Par défaut, vous obtiendrez l'erreur:
System.Data.SqlClient.SqlException: Login failed for user 'SERVER\IUSR_VIRTUALMACHINE'.
Parce que dans web.config usurpation d'identité est définie sur true:
<identity impersonate="true" />
je peux mettre à false et le code de base de données fonctionnera. Les sites accessibles anonymement fonctionneront également. Pour résoudre ce problème, est-ce que je devrais encapsuler tout mon code d'accès à la base de données pour fonctionner avec des privilèges élevés, est-ce que SharePoint le fait en interne? D'une certaine manière, cela ne semble pas être la solution la plus performante. Est-ce toujours la solution, utilisez simplement la sécurité SQL pour accéder aux bases de données à partir des composants WebPart personnalisés de SharePoint?
Cet accès à la base de données est très répandu dans tout le site donc je voudrais faire un choix éclairé ... SQL Auth est-il plus rapide ou plus lent que l'ajout d'une usurpation d'identité? Je vais devoir penser à un test: - \ – ArjanP
Je ne pense vraiment pas que cela fait une différence (mais c'est encore mieux testé dans votre environnement). Il y a probablement un impact négligeable sur les performances avec l'usurpation d'identité et le changement de contexte, mais je doute que ce soit perceptible.La mise en commun des connexions SQL sera la même, qu'il s'agisse d'une authentification SQL ou d'une sécurité intégrée et d'une seule identité empruntée (ce qui n'est pas le cas si l'on usurpe l'identité d'un groupe d'utilisateurs différents). Pour des raisons de sécurité, je pense que la sécurité intégrée est la meilleure approche. – dariom