サイト機能をアクティブ化するときに、自動的に WebApplication プロパティを設定したいと考えています。これはコードです:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb currentWeb = ContentTypes.ValidateFeatureActivation(properties);
using (SPSite site = new SPSite(currentWeb.Site.Url))
{
SPWebApplication currentApplication = site.WebApplication;
if (currentApplication.MaxQueryLookupFields < 20)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
try
{
currentApplication.MaxQueryLookupFields = 20;
}
catch (System.Security.SecurityException ex)
{
_log.ErrorFormat("no permission");
}
});
}
}
}
ファーム管理者が機能をアクティブ化した場合でも、セキュリティ例外がスローされます (「アクセスが拒否されました」)。行で
currentApplication.MaxQueryLookupFields = 20;
AFAIK SPSecurity.RunWithElevatedPrivileges は、ファーム管理者ではなく、サイト管理者として実行されます。しかし、これはどのように行うことができますか?(RunWithElevatedPrivileges なしで、同じ例外が発生します。