2

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

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 用户,但仍然为空。

我不能只授予用户访问权限,因为这将在客户端计算机上运行,​​并且我不能告诉他们授予对 SPConfig 数据库的访问权限。所以我需要一种方法来在代码中做到这一点,模仿什么的。

4

1 回答 1

0

我不确定这是否可行

我会给你两个链接 hopw 任何一个都可以为你工作。

SPFarm.Local 返回 null

或者

http://blogs.msdn.com/b/ekraus/archive/2009/11/13/sp2010-spfarm-local-is-null-or-web-application-could-not-be-found.aspx

于 2013-06-07T12:17:23.660 回答