Sharepoint 2013:使用管理员以外的其他人登录时,SPFarm.Local为空

时间:2013-06-06 21:26:34

标签: security permissions null sharepoint-2013

我使用以下代码创建了一个简单的控制台项目:

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {    
            var farm = SPFarm.Local;

            Console.WriteLine(SPFarm.Local);
            Console.ReadLine();
        }
    }
}

SP2013服务器安装在Cloudshare的虚拟服务器中。还有另一个用于SQL Server 2012的虚拟机,另一个用于Active Directory 2012(域为AD2012.loc)。

当我使用AD2012.loc/Administrator帐户打开项目时,它完美无缺。但是,当我使用我的帐户(位于AD2012.loc和管理员组中)打开帐户时,SPFarm.localnull

我知道这是一个权限,但由于我必须依赖这个SPFarm.Local对象在另一个项目中使用,这将在几个我无法访问的服务器中执行,我不能确定他们将以管理员身份执行,有什么我可以做的可能冒充代码作为SPFarm管理员运行吗?我试过SPSecurity.RunWithElevatedPrivileges但没有运气。

更新

我已经尝试运行上面的代码来模仿SPAdmin用户,但仍然是null。

我不能只提供对用户的访问权限,因为这将在客户端计算机上运行,​​我无法告诉他们提供对SPConfig数据库的访问权限。所以我需要一种方法来在代码,冒充或其他方面做到这一点。

1 个答案:

答案 0 :(得分:0)