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

本文关键字:模拟 何确定 代码 | 更新日期: 2023-09-27 18:08:13

当我在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;

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

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

JourneyThroughCode正确。你必须进入IIS,点击"应用程序池",点击你的SharePoint web应用程序正在使用的应用程序池,然后在右侧点击"高级设置",你会看到身份。更改此帐户的密码时要小心,因为您必须进入中央管理员并在"管理帐户"下更改密码,以便中央管理员使用此身份。

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