[英]Prevents auto (windows) authentication when browing intranet bound to Active Directory
[英]When is Active Directory Auto Detected
我正在构建一个将通过Active Directory验证用户身份的应用程序。 不需要验证,也不需要添加或编辑用户,仅需验证凭据即可。 我发现了很多关于此的帖子-一些使用System.DirectoryServices.AccountManagement(.NET 3.5及更高版本)或使用LDAP DirectoryEntry ...
我想弄清楚是否必须指定AD服务器URL? 测试时,我不需要指定任何内容吗?
何时自动检测到AD服务器? 什么时候需要指定URL?
我可以打电话获取自动检测到的AD服务器URL吗?
当您创建域PrincipalContext
或DirectoryContext
而不指定域或路径时,将使用当前上下文。 即代码正在执行的帐户。 如果代码在不在域中的帐户下执行,则将引发异常。 这适用于在Windows窗体应用程序或服务中运行的天气。
要针对某个域验证凭据,您需要做的是:
public bool ValidateCredentials(string username, string password)
{
using (var principalcontext = new PrincipalContext(ContextType.Domain))
{
return principalContext.ValidateCredentials(username, password);
}
}
但是,由于许多原因,这不是最好的方法。 例如,即使用户由于密码过期等原因而无法登录, ValidateCredentials
也可以返回true。其次,有一种更简便的方法可将Active Directory单点登录用于桌面应用程序:
var currentUser = UserPrincipal.Current;
这将返回当前用户的主体,无需重新验证,Windows已经进行了验证,因此您已经知道该用户有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.