我正在为asp.net创建一个自定义登录功能,它对活动目录进行验证。用户必须能够只使用他的用户名或他的用户名和域名登录(在这两种情况下都有密码)。
代码:
AuthUser user = Authentication.getDomainAndUserName(givenUsername);
bool validAccount = false;
PrincipalContext network = null;
if (user.domain != "") network = new PrincipalContext(ContextType.Domain, user.domain);
else network = new PrincipalContext(ContextType.Domain);
if (UserPrincipal.FindByIdentity(network, IdentityType.SamAccountName, user.username) != null) {
validAccount = network.ValidateCredentials(givenUsername, givenPassword, ContextOptions.Negotiate);
}"AuthUser“包含用户名,如果给定,则包含域。现在,如果用户没有显式地指定域,那么上面的内容仍然很好。
所以如果你打电话
new PrincipalContext(ContextType.Domain);域似乎是自动设置的。
在这种情况下,我如何才能找到它使用的域?
发布于 2013-08-16 08:45:50
您始终可以从从UserPrincipal.FindByIdentity()返回的用户主体获得使用的域
https://stackoverflow.com/questions/18268863
复制相似问题