SSOM でプログラム可能なサイトのアクセス許可を持つ現在のユーザーを確認したい。
Visual Studio 2013 でコンソール アプリケーションを作成しました。
しかし、ある SharePoint ファームで面白い結果が得られました。
「サイト コレクション機能」セクションで、「SharePoint Server Publishing Infrastructure」を有効にしました。
この状況では、SharePoint グループ "Style Resource Readers" が作成され、"Everyone" が含まれています。次に、「サイト許可なし」のユーザーに対してこのプログラムを試しました。
string url1 = "http://ServerName/sites/SiteCol1";
string userName = "i:0#.w|domainname\\username";
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
Console.WriteLine("Privilages");
using (SPSite oSIte = new SPSite(url1))
{
using(SPWeb web1 = oSIte.OpenWeb())
{
Console.WriteLine("checkpermissiion");
Console.WriteLine(web1.GetUserEffectivePermissions(userName));
}
}
}
);
}
catch (UnauthorizedAccessException ex)
{
console.writeline(ex.message);
}
catch (Exception ex)
{
Console.WriteLine("Catch Exception");
Console.WriteLine(ex.Message);
}
finally
{
/
SPSecurity.CatchAccessDeniedException = true;
}
4 つのファームすべてで、3 つのファームが "Open" を返します。この原因は、Style Resource Readers に「Everyone」が含まれているためだと思います。
しかし、1 農場は許可を返さなかった。
私の質問です。同じコード、同じソリューションで、結果が異なるのはなぜですか?
なので、この事件を知っている人がいたら教えてください。