繁体   English   中英

Asp.net C#中的Active Directory

[英]Active Directory in Asp.net C#

我对Active Directory有一个问题。 我的项目已托管在一台服务器中。 并且活动目录已在另一台服务器中维护。 现在,在员工登录时,我需要在应用程序中进行AD身份验证。 使用这两种不同的服务时,我感到非常困惑,因为我无法获取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();

我知道问题是从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 为Ok ,则名为Valid的变量将为您显示True值。

看一下这个问题: StackOverflow这里开始,人们已经更详细地解释了此主题(使用Microsoft Active Directory进行“登录”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM