C# · 12月 30, 2021

c# – 无法在System.DirectoryServices.AccountManagement.GroupPrincipal中转换类型的对象

我使用方法UserPrincipal.Current.ToString()在域中获取当前登录域用户与有效域.但是当我在一个字符串中显示它时,它在IIS服务器中托管时出现错误: Unable to cast object of type ‘System.DirectoryServices.AccountManagement.GroupPrincipal’ to type ‘System.DirectoryServices.AccountManagement.UserPrincipal’.解决方法 我有同样的问题.它在我的本地机器上完美工作,但在服务器上部署到IIS时失败.最后我不得不改变两件事情来使它工作:

>将验证更改为“Windows身份验证”(how-to)
>而不是使用当前,分两步做:(source)

PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

X-4545 X-4545 X-4545 X-4545 X- 20045 X-4545 X- 20045 X- 20045 X- 20045 X-4545

最后得到这个名字(或任何其他信息),我使用了user.DisplayName.