几分钟后OWIN令牌失效

时间:2015-06-22 10:45:02

标签: c# asp.net-mvc rest oauth owin

我为移动应用程序解决方案构建了一个MVC后端。使用OWIN和OAuth 2.0实现身份验证。在验证令牌后,从我的服务器中取出,工作正常。但在我的应用程序闲置几分钟后,每次通话都会收到“401,Unauthorized”的回复。

public void ConfigureAuth(IAppBuilder app){            
    app.CreatePerOwinContext(ApplicationDbContext.Create);
    app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

    PublicClientId = "self";
    OAuthOptions = new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new PathString("/Token"),
        Provider = new ApplicationOAuthProvider(PublicClientId),
        AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
        AllowInsecureHttp = true,
        AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active
    };

    app.UseOAuthBearerTokens(OAuthOptions);
}

我的理解是,令牌应在14天后过期,而不是在几分钟后过期。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我的IIS服务器不是Webfarm的一部分,但是由于某些原因,有必要生成machineKeys并将它们添加到web.config。之后,问题就消失了。

https://blogs.msdn.microsoft.com/vijaysk/2009/05/13/iis-7-tip-10-you-can-generate-machine-keys-from-the-iis-manager/