【发布时间】:2015-12-17 16:14:02
【问题描述】:
如果用户在域控制器中,我需要使用他们的域用户/密码对用户进行身份验证,但该应用程序也应该可供其他用户使用,这些用户应该使用自己的用户名/密码进行身份验证;这应该存储在应用程序数据库中,并根据数据库检查他们的用户名/密码。
到目前为止,我从 vs2015 中的新 asp.net 模板开始,选择个人用户帐户。 我可以通过域控制器对用户进行身份验证,但如果成功,我将无法将用户存储到 HttpContext.User 属性。
在 SignInManager 中,我调用 PasswordSignIn 并根据 AD 检查返回成功或失败。
public SignInStatus PasswordSignIn(string userName, string password, bool isPersistent, bool shouldLockout) {
if(AuthenticateAD(userName, password)) {
//
// to create identity/principal and assign to HttpContext.User
//
return SignInStatus.Success;
}
else {
return SignInStatus.Failure;
}
}
public bool AuthenticateAD(string username, string password) {
using(var context = new PrincipalContext(ContextType.Domain, "domainname")) {
return context.ValidateCredentials(username, password);
}
}
感谢任何提示!
【问题讨论】:
标签: asp.net-mvc claims-based-identity