//要驗證的username與pwd
string domainAndUsername = domain + @"\" + username;
DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);
DirectorySearcher search = new DirectorySearcher(entry);
//要驗證的username
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
result 為null即AD無此帳號或帳密錯誤
未驗證的要求會被重新導向到 Logon.aspx 頁面
Web.config 檔
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name="adAuthCookie" timeout="10" path="/">
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
<!--此組態,所有對此應用程式發出的要求都會以已設定之帳戶的安全性內容執行。使用者必須提供認證以向 Active Directory 網域服務驗證,但只有已設定的帳戶可存取 Active Directory 網域服務。--!>
<identity impersonate="true"/>
</system.web>
</configuration>
LDAP(Lightweight Directory Access Protocol) 屬性代表的意義
屬性 | 說明 | 範例 |
DC | domain Component | Server 網域名稱 |
CN | Common Name | username |
OU | OrganizationalUnitName | |
O | OrganizationName | |
Street | Street Address | |
L | Locality Name | |
ST | State Or Province Name | |
C | Country Name | |
UID | User Id |
參考資料:
https://msdn.microsoft.com/zh-tw/library/ms180890(v=vs.90).aspx