2008-10-10 4 views
0

Bonjour à tous,Problème avec connexion à la base de flux de travail SharePoint avec des options de sécurité intégrées

que je cours dans un problème à l'aide d'un projet de flux de travail SharePoint (C#, VS 2008) et la connexion à une base de données. Voici ma connexion de base de données chaîne:

Data Source=DBSERVER;Initial Catalog=DBNAME;Integrated Security=True; 

Lorsque je tente d'exécuter le code suivant, je reçois l'erreur suivante ...

SqlConnection dbEngine = new SqlConnection(Constants.DBCONNECTION_STRING); 
dbEngine.Open(); 

« Échec de la connexion pour l'utilisateur 'DOMAIN \ MACHINE_NAME $' "

Ce que j'ai besoin de faire est de passer à travers les informations d'identification de l'utilisateur connecté. J'ai l'usurpation d'identité mais il ne semble pas passer à travers. Toutes les suggestions seraient très appréciés.

Nous vous remercions à l'avance pour tout conseil,

Scott Vercuski

Répondre

1

Tout accès à la base de données doit s'exécuter en tant que compte de service Windows pour des raisons de sécurité et de regroupement de connexions.

En ce qui concerne le contexte de sécurité Workflow, voir:

SharePoint, Workflows et sécurité http://cglessner.blogspot.com/2008/09/sharepoint-workflows-and-security.html

déclaratives Workflows et contexte utilisateur http://blogs.msdn.com/sharepointdesigner/archive/2008/09/28/declarative-workflows-and-user-context.aspx

sécurité et le développement d'applications dans SharePoint: Premiers pas Flux de travail http://www.microsoft.com/technet/community/columns/secmvp/sv0408.mspx#EACAC

1

Est-ce la fin de l'avant Web et le serveur SQL sur la même boîte? Si ce n'est pas le cas, vous devrez configurer Kerberos pour permettre la propagation des informations d'identification.

0

Vous ne pouvez pas faire cela - le flux de travail ne s'exécute pas dans le contexte d'un utilisateur. Les flux de travail sont exécutés de manière asynchrone. Seules les requêtes WebPage (HTTP) s'exécutent dans le contexte de l'utilisateur (si vous activez l'emprunt d'identité). Vous ne pouvez pas transmettre l'emprunt d'identité au workflow. Pour restaurer l'usurpation d'identité dans le flux de travail (ce que vous ne devriez pas faire), il faudrait un nom d'utilisateur ET un mot de passe OU une transition de protocole (le processus devrait alors être exécuté sous le système). En outre, votre application présente un sérieux problème de conception si vous tentez d'accéder à la base de données à partir d'un contexte d'utilisateur emprunté. Cela perturbe le regroupement de connexions et nuira sérieusement aux performances. C'est généralement un non-go.

Ceci est pas un problème kerberos. Le processus tente d'accéder à la base de données en tant que compte machine, ce qui indique que le processus s'exécute en tant que service réseau ou système (win 2008 and later).

Questions connexes