我们使用此代码获取当前登录用户的电子邮件:varcurrentUsersEmail=UserPrincipal.Current.EmailAddress;这在网络上工作正常。但是,我们有笔记本电脑用户在断开连接的状态下远程运行我们的代码。上述代码在这种状态下会导致此异常:System.DirectoryServices.AccountManagement.PrincipalServerDownExceptionMessage:"Theservercouldnotbecontacted."有谁知道一种方法来检索当前用户的电子邮件,该方法在连接/在网络上和断开连接时都可以使用?更新:如果您
我有三个或更多域名,例如main.com、sub.main.com、sub2.main.com等我有一个代码:using(PrincipalContextctx=newPrincipalContext(ContextType.Domain,"ADServer","dc=main,dc=com",ContextOptions.Negotiate)){UserPrincipalu=newUserPrincipal(ctx);u.UserPrincipalName="*"+mask+"*";using(PrincipalSearcherps=newPrincipalSearcher(u)){
我想使用AccountManagement列出组织单位中的所有组。以下代码片段适用于DirectoryServices,但我必须在结果中使用DirectoryEntry路径实例化GroupPrincipal(这感觉像是一个肮脏的修复)。DirectoryEntryroot=newDirectoryEntry("LDAP://OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local")DirectorySearcherds=newDirectorySearcher(root);ds.Filter="(objectCa
我在MVC网络应用程序中使用.Net4上的c#时遇到问题,当我查询ActiveDirectory时,我经常收到错误:Attemptedtoaccessanunloaded应用程序域。(HRESULT的异常:0x80131014)。奇怪的是,它会在一段时间内完美运行,然后它会开始发生,然后再次消失。我对该函数进行了一些修改以使其正常工作,但它们似乎都失败了。我想知道我是否做错了什么,或者是否有更好的方法。这是我当前的函数,它将接受一个loginId和一个PrincipalContext。loginId可以是用户DisplayName即“JohnSmith”,也可以是DOMAINNAME\
我在MVC网络应用程序中使用.Net4上的c#时遇到问题,当我查询ActiveDirectory时,我经常收到错误:Attemptedtoaccessanunloaded应用程序域。(HRESULT的异常:0x80131014)。奇怪的是,它会在一段时间内完美运行,然后它会开始发生,然后再次消失。我对该函数进行了一些修改以使其正常工作,但它们似乎都失败了。我想知道我是否做错了什么,或者是否有更好的方法。这是我当前的函数,它将接受一个loginId和一个PrincipalContext。loginId可以是用户DisplayName即“JohnSmith”,也可以是DOMAINNAME\
在过去的几年里,我一直在使用这个小功能来验证用户凭据,没有任何问题。createPrincipalContext方法返回一个带有ContextType.Machine和机器名称的PrincipalContext。publicstaticboolValidateCredentials(stringusername,stringpassword,stringdomain=null){try{using(varprincipalContext=createPrincipalContext(username,domain)){username=GetLoginInfo(username).Us
在过去的几年里,我一直在使用这个小功能来验证用户凭据,没有任何问题。createPrincipalContext方法返回一个带有ContextType.Machine和机器名称的PrincipalContext。publicstaticboolValidateCredentials(stringusername,stringpassword,stringdomain=null){try{using(varprincipalContext=createPrincipalContext(username,domain)){username=GetLoginInfo(username).Us
我在域中使用方法UserPrincipal.Current.ToString()来获取当前登录域用户的有效域。但是当我在一个字符串中显示它时,它在IIS服务器中托管时出现错误:Unabletocastobjectoftype'System.DirectoryServices.AccountManagement.GroupPrincipal'totype'System.DirectoryServices.AccountManagement.UserPrincipal'. 最佳答案 我遇到了同样的问题。它在我的本地机器上运行良好,但是当
在.NET4.5下测试我们的.NET4.0应用程序时,我们遇到了UserPrincipal的FindByIdentity方法的问题。以下代码在.NET4.0运行时中运行时有效,但在.NET4.5下失败:[Test]publicvoidTestIsAccountLockedOut(){conststringactiveDirectoryServer="MyActiveDirectoryServer";conststringactiveDirectoryLogin="MyADAccount@MyDomain";conststringactiveDirectoryPassword="MyAD