統合認証を使用して、WebパーツからSQLデータベースにアクセスしたいと思います。IISアプリケーションプールIDを使用する必要があります。
デフォルトでは、次のエラーが発生します。
System.Data.SqlClient.SqlException: Login failed for user 'SERVER\IUSR_VIRTUALMACHINE'.
web.configでは、偽装がtrueに設定されているためです。
<identity impersonate="true" />
これをfalseに設定すると、データベースコードが機能します。匿名でアクセスされたサイトも機能します。ただし、認証を使用するSharePointサイトは失敗するため、これは実際の解決策ではありません。
これを解決するには、昇格された特権で実行するためにすべてのデータベースアクセスコードをカプセル化する必要がありますが、SharePointは内部でどのように実行しますか?どういうわけか、それは最もパフォーマンスの高いソリューションのようには思えません。それでも、SQLセキュリティを使用してSharePointカスタムWebパーツからデータベースにアクセスする方法はありますか?