iT邦幫忙

0

How to Get user's information from Active Directory

dove 2023-03-13 09:31:061077 瀏覽
  • 分享至 

  • xImage

如何從公司的AD SERVER抓取帳號、密碼及AD資訊到自己寫的系統中做登入驗證?而且,是用ASP.NET C# 的WEB FORM寫法的範例或可下載的範例程式。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

5
JamesDoge
iT邦高手 1 級 ‧ 2023-03-13 10:42:42
最佳解答

Web.config

<connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://domain_controller_address/DC=domain_name,DC=com" />
</connectionStrings>

ADHelper

using System.DirectoryServices;

public class ADHelper
{
    public static bool ValidateUser(string username, string password)
    {
        bool result = false;
        string adConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ADConnectionString"].ConnectionString;
        DirectoryEntry entry = new DirectoryEntry(adConnectionString, username, password);

        try
        {
            // 嘗試在AD中取得使用者資訊
            DirectorySearcher search = new DirectorySearcher(entry);
            search.Filter = "(SAMAccountName=" + username + ")";
            search.PropertiesToLoad.Add("cn");
            SearchResult sr = search.FindOne();

            if (sr != null)
            {
                result = true;
                // 取得使用者資訊
                string displayName = sr.Properties["cn"][0].ToString();
                // 在此處新增其他使用者資訊
            }
        }
        catch (Exception ex)
        {
            // 處理例外
        }
        finally
        {
            entry.Close();
        }
        return result;
    }
}

ASP.NET Web Forms

protected void btnLogin_Click(object sender, EventArgs e)
{
    string username = txtUsername.Text.Trim();
    string password = txtPassword.Text.Trim();

    bool isValidUser = ADHelper.ValidateUser(username, password);

    if (isValidUser)
    {
        lblResult.Text = "登入成功!";
    }
    else
    {
        lblResult.Text = "無效的使用者名稱或密碼!";
    }
}
dove iT邦新手 5 級 ‧ 2023-03-13 14:35:17 檢舉

謝謝您!!

1
allenlwh
iT邦高手 1 級 ‧ 2023-03-13 09:36:19

只能將帳號及密碼 送給AD去做驗證,AD會回覆成功或失敗。

C# Windows AD 驗證示範

dove iT邦新手 5 級 ‧ 2023-03-13 14:35:08 檢舉

謝謝您!!

我要發表回答

立即登入回答