統合された認証を使用して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セキュリティを使用するだけですか?
そのデータベースアクセスはサイト全体にかなり広がっていますだから私は情報に基づいた選択をしたいと思います..偽装を追加するよりもSQLの認証が速くなるか遅くなるのですか?私はテストについて考える必要があります: - \ – ArjanP
私は実際にそれが違いをもたらすとは思わない(しかし、あなたの環境ではまだ最高のテスト済みです)。偽装やコンテキストの切り替えに伴うパフォーマンスの低下はごくわずかですが、気づいていないと思います。SQL認証、統合セキュリティ、および偽装された単一のIDを使用するかどうかにかかわらず、SQL接続のプーリングは同じになります(複数の異なるユーザーを偽装する場合は当てはまりません)。セキュリティのためには、統合セキュリティが最善のアプローチだと私は思っています。 – dariom