【问题标题】:OWIN token gets invalid after a couple of minutesOWIN 令牌在几分钟后失效
【发布时间】:2015-09-07 18:53:24
【问题描述】:

我为移动应用解决方案构建了一个 MVC 后端。认证通过 OWIN 和 OAuth 2.0 实现。验证令牌后,从我的服务器中提取,工作正常。但是在我的应用程序中闲置几分钟后,每个电话都会以“401,未经授权”应答。

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 天后过期,而不是几分钟后。

谁能帮我解决这个问题?

【问题讨论】:

  • 你是否为每次调用 web api 注入了不记名令牌?
  • 是的,我会在每次通话时发送。
  • 出于好奇,您使用的是哪个主机? IIS?如果是,这可能与数据保护器问题有关。确保在 web.config 中配置静态机器密钥。
  • 您好!我在 web.config 中添加了一个机器密钥,它就像一个魅力。谢谢!但奇怪的是,我没有使用服务器基础架构。
  • @user1705545 你知道为什么在 web.config 中设置静态机器密钥有效吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2018-09-27
    • 2021-11-12
    • 1970-01-01
    • 2016-01-11
    • 2021-06-18
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多