我正在使用SPSecurity.RunWithElevatedPrivileges ....允许“模拟”超级用户的“ sharepoint \ system”帐户。
“ sharepoint \ system”帐户是否是当前Web应用程序的应用程序池标识的别名?
因此,如果我的应用程序池标识是自定义用户(带有电子邮件和其他信息),我如何检索其信息?(我要获取的信息是电子邮件地址...自定义应用程序池用户电子邮件具有值,“ sharepoint \ system”帐户电子邮件没有值!!!)
我还尝试通过使用WindowsIdentity.Impersonate(IntPtr.Zero)方法来检索appPool身份,但是什么也没有!
有什么想法吗???
注意事项:
SPSecurity.RunWithElevatedPrivileges
委托方法中运行的代码在该SharePoint\System
帐户下运行SharePoint\System
帐户具有超级用户权限。但是,它在SharePoint运行时环境中被Windows安全系统识别,但Windows安全系统无法识别它,即,它不代表运行AppPool的帐户。如果要访问运行AppPool的用户帐户的电子邮件地址,可以尝试...
SPSecurity.RunWithElevatedPrivileges(delegate {
using (SPSite siteCollection = new SPSite("Url"))
{
using (SPWeb site = siteCollection.OpenWeb())
{
Console.WriteLine(string.Format("Current Logged in User is {0}. And Email Id: {1} ", site.CurrentUser.LoginName ,site.CurrentUser.Email));
appPoolAccount = siteCollection.WebApplication.ApplicationPool.Username;
SPUser appPoolUser = site.Users[appPoolAccount] as SPUser;
Console.WriteLine(string.Format("AppPool User is {0}. And Email Id: {1} ", appPoolUser.LoginName, appPoolUser.Email));
Console.ReadKey();
}
}
});
Email
属性SPUser
。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句