最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#?網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn)

 更新時(shí)間:2024年04月18日 09:44:31   作者:YoungerXu  
本文主要介紹了C#?網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

使用C#對(duì)網(wǎng)域賬號(hào)(Domain)驗(yàn)證方案:

一、使用advapi32.dll動(dòng)態(tài)庫

[DllImport("advapi32.dll")]
private static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
const int LOGON32_LOGON_INTERACTIVE = 2; //通過網(wǎng)絡(luò)驗(yàn)證賬戶合法性
const int LOGON32_PROVIDER_DEFAULT = 0; //使用默認(rèn)的Windows 2000/NT NTLM驗(yàn)證方

public static bool CheckADAccount(string account, string password)
{
    IntPtr tokenHandle = new IntPtr(0);
    tokenHandle = IntPtr.Zero;
    string domainName = "dpbg";
    if (LogonUser(account, domainName, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref tokenHandle))
        return true;
    return false;
}

注意使用該動(dòng)態(tài)庫可能會(huì)導(dǎo)致 服務(wù)Local Security Authority Process 內(nèi)存異常升高且無法回收現(xiàn)象

二、使用 System.DirectoryServices

/// <summary>
/// 驗(yàn)證網(wǎng)域賬號(hào)
/// </summary>
/// <param name="account">賬號(hào)</param>
/// <param name="password">密碼</param>
/// <param name="domain">網(wǎng)域</param>
/// <param name="name">姓名</param>
/// <returns></returns>
public static bool CheckADAccountNew(string account, string password, string domain, out string name)
{
    name = "";
    using (DirectoryEntry deUser = new DirectoryEntry(@"LDAP://" + domain, account, password))
    {
        DirectorySearcher src = new DirectorySearcher(deUser);
        src.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" + account + "))";
        src.PropertiesToLoad.Add("cn");
        src.SearchRoot = deUser;
        src.SearchScope = SearchScope.Subtree;
        try
        {
            SearchResult result = src.FindOne();
            if (result != null)//驗(yàn)證成功
            {
                if (result.Properties["cn"] != null)//依據(jù)實(shí)際屬性獲取用戶信息
                {
                    name = result.Properties["cn"][0].ToString();
                }
                return true;
            }
            return false;
        }
        catch
        {
            return false;
        }
    }
}

注意如果域內(nèi)賬號(hào)較多時(shí),驗(yàn)證不存在的賬號(hào)速度較慢且不會(huì)驗(yàn)證密碼的有效期

三、使用System.DirectoryServices.AccountManagement

/// <summary>
/// 驗(yàn)證網(wǎng)域賬號(hào)
/// </summary>
/// <param name="account">賬號(hào)</param>
/// <param name="password">密碼</param>
/// <param name="domain">網(wǎng)域</param>
/// <param name="name">姓名</param>
/// <returns></returns>
public static bool CheckADAccountNew(string account, string password, string domain, out string name)
{
    name = "";
    using (var domainContext = new PrincipalContext(ContextType.Domain, domain))
    {
        using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, account))
        {
            if (foundUser == null)
            {
                return false;
            }

            name = foundUser.Name;
            if (domainContext.ValidateCredentials(account, password))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}

注意該方法不會(huì)驗(yàn)證密碼的有效期

到此這篇關(guān)于C# 網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# 網(wǎng)域賬號(hào)驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄

    C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄

    WPF中全屏窗口,會(huì)自動(dòng)隱藏任務(wù)欄,那非全屏窗口如何隱藏任務(wù)欄?甚至有沒有一種場景,隱藏任務(wù)后自定義一套系統(tǒng)任務(wù)欄來顯示?這篇文章主要介紹了C# 顯示、隱藏窗口對(duì)應(yīng)的任務(wù)欄,需要的朋友可以參考下
    2021-10-10
  • Unity UGUI Shadow陰影組件的介紹使用示例

    Unity UGUI Shadow陰影組件的介紹使用示例

    這篇文章主要為大家介紹了Unity UGUI Shadow陰影組件的介紹使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C#中winform控制textbox輸入只能為數(shù)字的方法

    C#中winform控制textbox輸入只能為數(shù)字的方法

    這篇文章主要介紹了C#中winform控制textbox輸入只能為數(shù)字的方法,包括使用keyPress事件限制鍵盤輸入以及TextChanged事件限制粘貼等情況,來實(shí)現(xiàn)控制輸入為數(shù)字的功能,需要的朋友可以參考下
    2015-01-01
  • C#?StackExchange.Redis?用法匯總

    C#?StackExchange.Redis?用法匯總

    StackExchange.Redis?是?C#?操作?Redis?數(shù)據(jù)庫的客戶端,本文通過圖文并茂的形式給大家介紹C#?StackExchange.Redis?用法匯總,感興趣的朋友一起看看吧
    2021-12-12
  • C#中的引用類型以及特殊引用類型詳解

    C#中的引用類型以及特殊引用類型詳解

    本文詳細(xì)講解了C#中的引用類型以及特殊引用類型,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#運(yùn)算符之與,或,異或及移位運(yùn)算小結(jié)

    C#運(yùn)算符之與,或,異或及移位運(yùn)算小結(jié)

    本文是對(duì)C#中的與,或,異或及移位運(yùn)算進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C#實(shí)現(xiàn)單詞本功能

    C#實(shí)現(xiàn)單詞本功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)單詞本功能,復(fù)習(xí)鞏固所學(xué)單詞,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • C#?Winform文本面板帶滾動(dòng)條的實(shí)現(xiàn)過程

    C#?Winform文本面板帶滾動(dòng)條的實(shí)現(xiàn)過程

    當(dāng)數(shù)據(jù)過多時(shí),往往無法在一頁中展示,所以非常需要一個(gè)滾動(dòng)條來調(diào)節(jié)頁面內(nèi)容,這篇文章主要給大家介紹了關(guān)于C#?Winform文本面板帶滾動(dòng)條的實(shí)現(xiàn)過程,需要的朋友可以參考下
    2022-12-12
  • 淺析C# 索引器(Indexer)

    淺析C# 索引器(Indexer)

    這篇文章主要介紹了C# 索引器(Indexer)的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 深入C# winform清除由GDI繪制出來的所有線條或圖形的解決方法

    深入C# winform清除由GDI繪制出來的所有線條或圖形的解決方法

    本篇文章是對(duì)在C#中使用winform清除由GDI繪制出來的所有線條或圖形的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評(píng)論

正定县| 佛山市| 乌海市| 轮台县| 绥棱县| 清流县| 莲花县| 萝北县| 龙岩市| 准格尔旗| 吉林市| 阿拉善左旗| 凤庆县| 鄂温| 屏东县| 泽州县| 湄潭县| 新建县| 财经| 洛扎县| 诸城市| 兴隆县| 晋宁县| 阳江市| 靖江市| 榆中县| 厦门市| 子洲县| 吉水县| 司法| 赣州市| 苗栗市| 德州市| 贵德县| 龙门县| 图片| 浮梁县| 怀集县| 清苑县| 东乡县| 湖南省|