我收到以下错误
使用PrincipalContext获取域用户信息时,出现“服务器名称不能包含空格”的问题。
该代码在我的机器上本地运行,但当我将其加载到 Intranet Web 服务器上时,它就崩溃了。
//GET CURRENT USER
String winUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
string[] domainUsername = winUser.Split(Convert.ToChar(@"\"));
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, domainUsername[0]);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, domainUsername[1]);
return user;
对我来说这是因为PrincipalContext的以下设置。
更改应用程序池的身份后解决了这个问题应用程序池身份 to 本地系统 .
这不是一个真正的解决方案,但可能会对某人有所帮助。
PrincipalContext pc = new PrincipalContext((Environment.UserDomainName == Environment.MachineName ?
ContextType.Machine : ContextType.Domain), Environment.UserDomainName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)