2009-06-30 4 views
3

統合された認証を使用してWebパーツからSQLデータベースにアクセスしたいと考えています。 IISアプリケーションプールIDを使用する必要があります。SharePointと<identity impersonate = "false" />

デフォルトではエラーが発生します:web.configファイルで偽装がtrueに設定されている

System.Data.SqlClient.SqlException: Login failed for user 'SERVER\IUSR_VIRTUALMACHINE'. 

ので:

<identity impersonate="true" /> 

が、私はこれをfalseに設定することができますし、データベースのコードが動作します。匿名でアクセスされるサイトも機能します。しかし、認証を使用するすべてのSharePointサイトは失敗しますので、これは実際の解決策ではありません。

これを解決するには、私のデータベースアクセスコードをすべて昇格した権限でカプセル化しなければなりません。どういうわけか、それは最もパフォーマンスの高いソリューションのようには見えません。 それでも、SharePointのカスタムWebパーツからデータベースにアクセスするにはSQLセキュリティを使用するだけですか?

答えて

4

web.configファイル内の<identity />および<authentication />要素は、統合認証を使用する際にSQL Serverへの接続に使用されるアカウントを決定します。

<authentication mode="Windows" />が設定されている場合、ユーザーを認証するためにIISに委任します。

<authentication mode="Windows" /> 
<identity impersonate="true" /> 

とIISが匿名ユーザーを許可するように設定されていることを:私はあなたのあなたのweb.configファイルが含まれていることを推測しています。 <identity impersonate="true" />を設定すると、IISはIIS匿名アクセスアカウントのIDをSQL Serverに渡します。

Larsが指摘しているように、SPSecurity.RunWithElevatedPrivilegesを使用すると、必要なものが得られます。

+0

そのデータベースアクセスはサイト全体にかなり広がっていますだから私は情報に基づいた選択をしたいと思います..偽装を追加するよりもSQLの認証が速くなるか遅くなるのですか?私はテストについて考える必要があります: - \ – ArjanP

+0

私は実際にそれが違いをもたらすとは思わない(しかし、あなたの環境ではまだ最高のテスト済みです)。偽装やコンテキストの切り替えに伴うパフォーマンスの低下はごくわずかですが、気づいていないと思います。SQL認証、統合セキュリティ、および偽装された単一のIDを使用するかどうかにかかわらず、SQL接続のプーリングは同じになります(複数の異なるユーザーを偽装する場合は当てはまりません)。セキュリティのためには、統合セキュリティが最善のアプローチだと私は思っています。 – dariom

0

これは間違っています。 <identity impersonate="true" />がtrueに設定されているため、ASP.NET/IISは現在ログインしているユーザーとしてスレッドを実行します(アプリケーションプールアカウントではなく、実際のユーザーがWebサイトにログインしています)。

ここで何かが起こっています。カスタムデータベースの接続文字列を投稿できますか? (コースからのプライベートデータを除いて)

+0

実際には何もありません。 connectionString = "データソース= sqlserver;初期カタログ=ログ; Trusted_Connection = True" 違いは、サイトは匿名の認証下にあるためです。実際のユーザーはWebサイトにログインしていません。 – ArjanP

3

SPSecurity.RunWithElevatedPrivilegesを使用して、アプリケーションプールIDのコンテキストでコードを実行します。

+0

Lars、Daniel LarsonがRunWithElevatedPrivegesを可能な限り避けるべきだと主張したことについて、どう思いますか?彼は代わりにSPUserTokenの偽装を使用することを提案し、ここに例を示します:http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry?sa=636841091 -Tom –

関連する問題