我收到以下错误
'使用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;
答案 0 :(得分:2)
对我来说,这是因为PrincipalContext的设置如下。
并在将应用程序池的标识从 ApplicationPoolIdenity 更改为 LocalSystem 后解决。
这不是一个真正的解决方案,但可能有助于某人。
PrincipalContext pc = new PrincipalContext((Environment.UserDomainName == Environment.MachineName ?
ContextType.Machine : ContextType.Domain), Environment.UserDomainName);
答案 1 :(得分:1)