1

我想检查具有站点权限的当前用户,在 SSOM 中可编程。

我在 Visual Studio 2013 中为控制台应用程序创建。

但我在一个 SharePoint 场中得到了有趣的结果。

在“网站集功能”部分,我激活了“SharePoint Server Publishing Infrastructure”。

在这种情况下,创建了 SharePoint 组“样式资源阅读器”并包含“所有人”。然后我为“无站点权限”用户尝试了这个程序。

        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 农场没有返回许可。

所以我的问题。在相同的代码中,相同的解决方案,为什么结果不同?

所以如果有人知道这个案例,请告诉我。

4

0 回答 0