如何在WebApi中手动将令牌分配给用户上下文

时间:2018-03-22 11:49:18

标签: c# asp.net-web-api asp.net-identity

我试图编写自己的授权过滤器来处理基于令牌的身份验证。 [出于某些原因,我不想实施ASP.Net身份认证系统]

我想将自己的Generated令牌分配给WebApi中的用户上下文。

类似于ASP.net身份的功能。

我该如何手动完成此操作?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以通过创建自己的自定义令牌提供程序类来完成此操作。

public class AccessTokenProvider : Microsoft.Owin.Security.Infrastructure.AuthenticationTokenProvider
{
    public override void Create(AuthenticationTokenCreateContext context)
    {
        context.SetToken("yourtoken");
        base.Create(context);
    }
}

并在owin启动课程中设置您的授权选项,如下所示。

OAuthServerOptions = new OAuthAuthorizationServerOptions
{
    TokenEndpointPath = new PathString("/api/token"),
    Provider = new ApplicationOAuthProvider(PublicClientId),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
    AllowInsecureHttp = true,
    AccessTokenProvider = new AccessTokenProvider()
};

app.UseOAuthAuthorizationServer(OAuthServerOptions);