C# 用户需要什么权限来验证Active Directory中的凭据?
我有一些代码使用PrincipalContext对象,并将特定的用户名和密码传递到其构造函数中,以绑定到Active Directory 然后进行调用。ValidateCredentials()为正在验证的用户传入不同的用户名和密码C# 用户需要什么权限来验证Active Directory中的凭据?,c#,active-directory,C#,Active Directory,我有一些代码使用PrincipalContext对象,并将特定的用户名和密码传递到其构造函数中,以绑定到Active Directory 然后进行调用。ValidateCredentials()为正在验证的用户传入不同的用户名和密码 我的问题是,为了让第一个用户绑定到Active Directory,Active Directory中需要什么权限?当我开始研究这个主题时,我发现一切都非常混乱,本教程是一个更好的入门教程,因为有很多首字母缩略词会增加难度。 我想向您提一个关于有效性的类似问题,但
我的问题是,为了让第一个用户绑定到Active Directory,Active Directory中需要什么权限?当我开始研究这个主题时,我发现一切都非常混乱,本教程是一个更好的入门教程,因为有很多首字母缩略词会增加难度。 我想向您提一个关于有效性的类似问题,但不是关于凭证的问题 因为有几个代码片段与这类工作相关 我想你问的是身份验证功能 我认为发布我的全部代码只会让你感到困惑,所以我将解释它的结构,希望能让你继续并给出一个片段 我这样做的方式和方法有很多,如下所示: 公共类LDA身份验证 用一种方法进行验证 其中传递方法的是域、用户名和密码 然后我用 目录条目 目录搜索者 查找和筛选SAMAccountName的步骤 然后,这取决于你的应用程序和你想找到什么 但其中大部分都在内部 System.DirectoryServices
try
{ //Bind to the native AdsObject to force authentication.
Object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
//Update the new path to the user in the directory.
_path = result.Path;
_filterAttribute = (String)result.Properties["cn"][0];
}
catch (Exception ex)
{
throw new Exception("Error authenticating user. " + ex.Message);
}
这应该给你足够的时间开始搜索并得到你需要的东西。祝你好运 在内部,该方法只需使用提供的网络凭据调用该方法,以检查它们是否有效。如果绑定成功,ValidateCredentials返回true,否则返回false
由于该方法使用以下属性修饰:
[DirectoryServicesPermissionAttribute(SecurityAction.LinkDemand, Unrestricted = true)]
应用程序的标识(运行进程和/或当前模拟的用户帐户)必须通过此权限检查才能使该方法工作。要绑定,只需传入当前活动的任何AuthenticatablePrinciple对象即可(你知道计算机也有登录域的密码吗?它们每隔几周就会自动更改一次),但我不知道验证凭据是否需要更多权限。(总之,你的标题不错,但问题的主体不是)