我对Active Directory有一个问题。我的项目已托管在一台服务器上。并且活动目录已在另一台服务器中维护。现在,在员工登录时,我需要在我的应用程序中使用AD authientication。我使用这两个不同的服务时完全感到困惑,因为我无法获取ACtive Directory的记录;我使用的代码是:
string principal = this.Context.User.Identity.Name;
string filter = string.Format("(&(ObjectClass=dev)(sAMAccountName={1}))", "dev", principal);
string domain = "SOFTWARESERVER";
string[] properties = new string[] { "fullname","mail","sn" };
System.Security.Principal.WindowsIdentity wi = System.Security.Principal.WindowsIdentity.GetCurrent();
string[] a = Context.User.Identity.Name.Split('\\');
DirectoryEntry ADEntry = new DirectoryEntry("LDAP://SOFTWARESERVER/DC=softageenapl,DC=com,DC=np");
DirectorySearcher searcher = new DirectorySearcher(ADEntry);
searcher.SearchScope = SearchScope.Subtree;
searcher.ReferralChasing = ReferralChasingOption.All;
searcher.PropertiesToLoad.AddRange(properties);
searcher.Filter = filter;
SearchResult result = searcher.FindOne();
DirectoryEntry directoryEntry = result.GetDirectoryEntry();
string Name = ADEntry.Properties["Fullname"].Value.ToString();
string displayName = directoryEntry.Properties["displayName"][0].ToString();
string firstName = directoryEntry.Properties["givenName"][0].ToString();
string lastName = directoryEntry.Properties["sn"][0].ToString();
string email = directoryEntry.Properties["mail"][0].ToString();
答案 0 :(得分:0)
我知道这个问题是从2011年开始的。目前,我希望这段代码可以帮助某人
(C#)添加以下引用:
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
之后,您可以在应用中使用此代码:
PrincipalContext p = new PrincipalContext(ContextType.Domain, "IP of the server");
bool Valid = p.ValidateCredentials("User", "password");
如果logIn 为,则名为有效的变量将显示 True 值。
看一下这个问题:来自here, StackOverflow,人们已经详细解释了这个主题(使用Microsoft Active Directory“登录”)。