最新国产好看的视频,伊人天堂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),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

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

[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; //通過(guò)網(wǎng)絡(luò)驗(yàn)證賬戶(hù)合法性
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)庫(kù)可能會(huì)導(dǎo)致 服務(wù)Local Security Authority Process 內(nèi)存異常升高且無(wú)法回收現(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í)際屬性獲取用戶(hù)信息
                {
                    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ù)欄?甚至有沒(méi)有一種場(chǎng)景,隱藏任務(wù)后自定義一套系統(tǒng)任務(wù)欄來(lái)顯示?這篇文章主要介紹了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事件限制鍵盤(pán)輸入以及TextChanged事件限制粘貼等情況,來(lái)實(shí)現(xiàn)控制輸入為數(shù)字的功能,需要的朋友可以參考下
    2015-01-01
  • C#?StackExchange.Redis?用法匯總

    C#?StackExchange.Redis?用法匯總

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

    C#中的引用類(lèi)型以及特殊引用類(lèi)型詳解

    本文詳細(xì)講解了C#中的引用類(lèi)型以及特殊引用類(lèi)型,文中通過(guò)示例代碼介紹的非常詳細(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ì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(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)過(guò)程

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

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

    淺析C# 索引器(Indexer)

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

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

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

最新評(píng)論

吉木乃县| 永定县| 沁阳市| 河津市| 徐州市| 云林县| 巴青县| 遂溪县| 鄂尔多斯市| 海盐县| 大厂| 嵊州市| 金川县| 宝应县| 康马县| 乌拉特前旗| 札达县| 永春县| 满城县| 临澧县| 密山市| 通河县| 靖远县| 蓬安县| 建湖县| 神农架林区| 新和县| 宝应县| 康保县| 柏乡县| 漳平市| 博野县| 大埔区| 浦城县| 德格县| 达拉特旗| 兰溪市| 文安县| 凉山| 监利县| 铁岭县|