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:    }
arrow
arrow
    文章標籤
    asp.net ad DirectoryService
    全站熱搜

    jason0324 發表在 痞客邦 留言(0) 人氣()