close
http://msdn.microsoft.com/zh-tw/library/system.directoryservices(v=VS.80).aspx
這裡一定要先了解一下
工作需求上要使用 AD帳號作為認證,找了一下實作,還挺不錯玩的
Asp.Net
2個 Textbox 跟1 個Button 就搞定了
1: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
2: <br />
3: <asp:TextBox ID="TextBox2" TextMode="Password" runat="server"></asp:TextBox>
4: <br />
5: <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
C#
請使用 using System.DirectoryServices; 若找不到請至方案總管新增參考, 找 .NET 裡的System.DirectorServices
1: protected void Button1_Click(object sender, EventArgs e)
2: {
3: string ad_id = TextBox1.Text;
4: string ad_ps = TextBox2.Text;
5: DirectoryEntry ent = new DirectoryEntry("LDAP://dc=abc,dc=com,dc=tw",ad_id,ad_ps);
6: //網域名稱 , 以 "."為分隔 ,接續帳號,密碼
7: DirectorySearcher ds = new DirectorySearcher(ent); //建立 搜尋 AD的物件
8: ds.Filter = "(sAMAccountName=" + ad_id + ")"; //設立條件 , 這裡是找帳號與輸入ID一樣
9: ds.PropertiesToLoad.Add("displayName"); //搜尋期間要擷取的屬性清單
10: ds.SearchScope = SearchScope.Subtree; //伺服器觀察的搜尋範圍
11: try
12: {
13: SearchResult sr = ds.FindOne(); //搜尋到的第一個物年件
14:
15: if (sr == null)
16: {
17: Response.Write("找不到帳號");
18: }
19: else
20: {
21: string atest = sr.GetDirectoryEntry().Properties["displayName"].Value.ToString(); //取出顯示名稱
22: Response.Write("你的帳號是: "+atest);
23: }
24: }
25: catch (Exception ex)
26: {
27: Response.Write("密碼錯誤 ,或無此帳號");
28: }
29:
30: }
文章標籤
全站熱搜
留言列表