我使用的是webapi2 Owin身份验证,并且还有DBContext和应用程序db模型
如何将Owin身份验证生成的用户集成到其余的db模型中?
答案 0 :(得分:2)
在我的一个迁移项目中,我们已经拥有了用户表。所以这就是我使用它(而不是默认的自动生成的DB上下文)
public class ApplicationOAuthProvider : OAuthAuthorizationServerProvider
{
...
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var container = new MyUnityContainer();
var _tokenService = container.GetContainer().Resolve<ITokenService>();
var userId = _tokenService.Validate(context.UserName, context.Password);
if (userId <= 0)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return Task.FromResult<object>(null);
}
....
这里_tokenService是我的自定义DBContext之上的包装器,并且像任何其他DB方法一样有一个验证方法。
希望这有帮助。