欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)證賬戶合法性
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í)際屬性獲取用戶信息
                {
                    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)文章

  • Unity3D快速入門(mén)教程

    Unity3D快速入門(mén)教程

    本文講述了Unity3D如何快速入門(mén),包含Unity3D游戲引擎介紹,學(xué)習(xí)歷程和Unity3D快速入門(mén)的途徑,通過(guò)該篇文章的講解,希望能夠讓你更好的去學(xué)習(xí)Unity3D引擎
    2021-06-06
  • treeview遞歸綁定的兩種方法

    treeview遞歸綁定的兩種方法

    這篇文章主要介紹了treeview遞歸綁定的兩種方法,需要的朋友可以參考下
    2014-04-04
  • C# 文件操作函數(shù) 創(chuàng)建文件 判斷存在

    C# 文件操作函數(shù) 創(chuàng)建文件 判斷存在

    本文列舉了C#中文件操作中常用的函數(shù),創(chuàng)建文件和判斷文件存不存在的基本使用,簡(jiǎn)單實(shí)用,希望能幫到大家。
    2016-05-05
  • C#實(shí)現(xiàn)洗牌算法

    C#實(shí)現(xiàn)洗牌算法

    洗牌算法的要求是這樣的:將N個(gè)數(shù)亂序后輸出.由于和撲克牌的洗牌過(guò)程比較相似所以我也就稱為洗牌算法了.很多地方都不自覺(jué)的需要這個(gè)算法的支持.也可以將這個(gè)算法擴(kuò)展為從N個(gè)數(shù)中取出M個(gè)不重復(fù)的數(shù)(0<M<=N).今天我們看下如何用C#來(lái)實(shí)現(xiàn)
    2015-03-03
  • C#如何檢測(cè)操作系統(tǒng)版本

    C#如何檢測(cè)操作系統(tǒng)版本

    這篇文章主要為大家詳細(xì)介紹了C#如何檢測(cè)操作系統(tǒng)版本的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C#獲取DICOM圖像像素的像素值的代碼詳解

    C#獲取DICOM圖像像素的像素值的代碼詳解

    DICOM即醫(yī)學(xué)數(shù)字成像和通信,是醫(yī)學(xué)圖像和相關(guān)信息的國(guó)際標(biāo)準(zhǔn)(ISO 12052),它定義了質(zhì)量能滿足臨床需要的可用于數(shù)據(jù)交換的醫(yī)學(xué)圖像格式,這篇文章主要介紹了C#獲取DICOM圖像像素的像素值的方法,需要的朋友可以參考下
    2024-07-07
  • c#數(shù)據(jù)綁定之將datatabel的data添加listView

    c#數(shù)據(jù)綁定之將datatabel的data添加listView

    這篇文章主要介紹了c#將DataTabel的data添加ListView的示例,實(shí)現(xiàn)功能是通過(guò)響應(yīng)UI Textbox 的值向ListView 綁定新添加的紀(jì)錄。 ,需要的朋友可以參考下
    2014-04-04
  • .Net中的json操作類用法分析

    .Net中的json操作類用法分析

    這篇文章主要介紹了.Net中的json操作類用法分析,是非常實(shí)用的一個(gè)技巧,需要的朋友可以參考下
    2014-08-08
  • c#發(fā)送請(qǐng)求訪問(wèn)外部接口的實(shí)例

    c#發(fā)送請(qǐng)求訪問(wèn)外部接口的實(shí)例

    這篇文章主要介紹了c#發(fā)送請(qǐng)求訪問(wèn)外部接口的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • C#實(shí)現(xiàn)計(jì)算器功能

    C#實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論