【发布时间】:2016-01-23 00:09:33
【问题描述】:
我正在使用 webapi2 Owin 身份验证,并且还具有带有应用程序数据库模型的 DBContext
如何将 Owin 身份验证生成的用户集成到 db 模型的其余部分中?
【问题讨论】:
标签: .net asp.net-web-api2 owin
我正在使用 webapi2 Owin 身份验证,并且还具有带有应用程序数据库模型的 DBContext
如何将 Owin 身份验证生成的用户集成到 db 模型的其余部分中?
【问题讨论】:
标签: .net asp.net-web-api2 owin
在我的一个迁移项目中,我们已经有了 users 表。所以这就是我使用它所做的(而不是默认的自动生成的 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 方法一样的验证方法。
希望这会有所帮助。
【讨论】: