gpt4 book ai didi

c# - 如何在 LDAP 中进行身份验证?

转载 作者:行者123 更新时间:2023-11-30 17:56:16 24 4
gpt4 key购买 nike

我正在尝试使用 .NET 中的 LDAP 创建一个简单的身份验证系统。我正在检查 .NET 中的一些命名空间,并简单地制作如下标准代码片段。

DirectoryEntry de = new DirectoryEntry(path,username,password);

DirectorySearcher s = new DirectorySearcher(de);
s.Filter = "(&(cn=" + username2 + "))";

SearchResult result = s.FindOne();
if (result != null) {
Console.WriteLine("User exists");
} else {
Console.WriteLine("User does not exist");
}

我有一个管理员用户名和密码,usernamepassword,我用它来验证客户端应用程序。我有第二个用户名和密码,username2password2 需要在 LDAP 中检查才能登录。

username 是管理员帐户,username2 只是 LDAP 中的一个用户。那么如何查看username2的密码呢?

最佳答案

一种稍微倒退(且笨拙)的方法是以用户身份登录并尝试检索某些内容,然后将异常视为无效密码:

static bool CheckUser(string userName, string password) 
{
var adSettings = ConfigurationManager.ConnectionStrings["ActiveDirectory"];
if (adSettings == null ||
string.IsNullOrWhiteSpace(adSettings.ConnectionString))
{
return false;
}

try
{
using (var de = new DirectoryEntry(adSettings.ConnectionString, userName, password))
{
// This should throw an exception if the password is wrong
object nativeObject = de.NativeObject;
}
}
catch (DirectoryServicesCOMException)
{
// Wrong password
return false;
}
catch (System.Runtime.InteropServices.COMException)
{
// Can't connect
return false;
}

return true;
}

关于c# - 如何在 LDAP 中进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14361021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com