WebApi2 - 将自动生成的身份验证与其他DBContext集成

时间:2016-01-23 00:09:34

标签: .net asp.net-web-api2 owin

我使用的是webapi2 Owin身份验证,并且还有DBContext和应用程序db模型

如何将Owin身份验证生成的用户集成到其余的db模型中?

1 个答案:

答案 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方法一样有一个验证方法。

希望这有帮助。