SharePoint 2010 ファームに FBA サイトを作成しました。このサイトでは、Windows 認証と FBA 認証の両方が許可されています。サーバー管理者 (組み込み管理者のメンバー) をアプリケーション プール ID として設定しました。同じアカウントが、サイトの Sql サーバー データベースで十分な権限を持っています。
1つの機能を実装しました。この機能は、ファーム内のサイトの web.Config を変更します。SPSecurity.RunWithElevatedPrivileges ブロック内にコードを配置しました。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
Guid siteGuid = ((SPWeb)properties.Feature.Parent).Site.ID;
Guid webGuid = ((SPWeb)properties.Feature.Parent).ID;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteGuid))
{
using (SPWeb web = site.OpenWeb(webGuid))
{
SPWebApplication webApp = web.Site.WebApplication;
SPWebConfigModification myModification = new SPWebConfigModification("add[@name=\"assembly\"]", "/configuration/system.web/compilation/assemblies");
myModification.Value = "<add assembly=\"MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9e00227b2bfdcg7e\"/>";
myModification.Sequence = 0;
myModification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
myModification.Owner = typeof(<MyWebpartNameGoesHere>).FullName;
webApp.WebConfigModifications.Add(myModification);
webApp.WebService.ApplyWebConfigModifications();
webApp.Update();
}
}
});
}
コードは、すべての Windows ユーザーにとって問題なく実行されます。しかし、FBA ユーザーとしてサイトにアクセスして機能を有効にしようとすると、「アクセスが拒否されました」というメッセージが表示され始めます。エラー。
エラー: System.Security.SecurityException: アクセスが拒否されました。Microsoft.SharePoint.Administration.SPPersistedObject.BaseUpdate() で Microsoft.SharePoint.Administration.SPWebApplication.ApplyWebConfigModifications() で Microsoft.SharePoint.Administration.SPWebService.ApplyWebConfigModifications() で
誰でもこの問題を解決するのを手伝ってもらえますか?