如何确定代码中模拟的帐户

时间:2013-04-09 19:42:50

标签: c# sharepoint authentication

当我在SharePoint 2010下运行代码时遇到访问被拒绝错误时,我需要弄清楚哪些帐户被假冒。

我继承了这个项目,几乎没有资源重叠,也没有足够的基础知识来提出正确的问题。

作为SharePoint解决方案的一部分部署了一个aspx页面,该解决方案尝试在文件共享上创建目录,但不能这样做,并且捕获的异常表示访问被拒绝。抛出异常的方法是通过调用SPSecurity.RunWithElevatedPrivileges(MethodName)来运行的;在创建尝试之前运行以下代码并将UserName变量打印到日志表示应该完全控制共享的服务帐户

SecurityIdentifier user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
String UserName = user.Translate(typeof(System.Security.Principal.NTAccount)).Value;

我需要知道如何找到尝试创建的帐户的名称,理想情况下,在哪里更改它 - 我欢迎所有想法!谢谢!

2 个答案:

答案 0 :(得分:1)

SPSecurity.RunWithElevatedPrivileges在应用程序池帐户下运行,检查SharePoint站点的应用程序池的标识。

答案 1 :(得分:1)

JourneyThroughCode是正确的。您必须转到IIS并单击“应用程序池”,单击SharePoint Web应用程序正在使用的应用程序池,然后在右侧单击“高级设置”,您将看到标识。小心更改此帐户的密码,因为您必须进入中央管理员并更改“管理帐户”下的密码,以便中央管理员使用此身份。