0

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() で

誰でもこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

1

ユーザーにこのコードを有効にするかどうかを真剣に検討する必要があります。web.config の変更は管理者の仕事であり、ユーザーの仕事ではありません。

これを読んでください: http://www.itidea.nl/index.php/access-denied-when-activating-a-feature/

よろしく、アニタ

于 2011-02-04T19:11:26.373 に答える