亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

使用C#對網(wǎng)域賬號(Domain)驗證方案:

一、使用advapi32.dll動態(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)絡驗證賬戶合法性
const int LOGON32_PROVIDER_DEFAULT = 0; //使用默認的Windows 2000/NT NTLM驗證方

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;
}

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

二、使用 System.DirectoryServices

/// <summary>
/// 驗證網(wǎng)域賬號
/// </summary>
/// <param name="account">賬號</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)//驗證成功
            {
                if (result.Properties["cn"] != null)//依據(jù)實際屬性獲取用戶信息
                {
                    name = result.Properties["cn"][0].ToString();
                }
                return true;
            }
            return false;
        }
        catch
        {
            return false;
        }
    }
}

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

三、使用System.DirectoryServices.AccountManagement

/// <summary>
/// 驗證網(wǎng)域賬號
/// </summary>
/// <param name="account">賬號</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;
            }
        }
    }
}

注意該方法不會驗證密碼的有效期

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

相關文章

  • Unity3D快速入門教程

    Unity3D快速入門教程

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

    treeview遞歸綁定的兩種方法

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

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

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

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

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

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

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

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

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

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

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

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

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

    c#發(fā)送請求訪問外部接口的實例

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

    C#實現(xiàn)計算器功能

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

最新評論