SharePoint Web サイト下のカスタムWebサイトで…
前の日記と時間は前後してしまいますが、SharePointでがらみはまったことはメモしておきます。
IISのSharePoint Web サイトの配下の仮想ディレクトリに配置されたカスタムWebサイトで、Windows 統合認証接続(Integrated Security=true)のDBにアクセスするコードを実行すると、アクセス権限に関するエラーとなることがあります。システムアカウントをデータベースのユーザに登録しているのもかかわらずです。
そんなときはDB接続部分のコードで、SPSecurity.RunWithElevatedPrivileges メソッドを使用します。このメソッドは引数なし、戻り値なしデリゲートを引数とします。具体的には
SPSecurity.RunWithElevatedPrivileges(delegate() { Method();// DBにアクセスするコード });
のように囲むように記述します。