此请求的授权已被拒绝

Authorization has been denied for this request

我创建了一个带有基本 OAuth 的网络api 和一个使用 ajax 访问 api 的移动应用程序。我将 AccessTokenExpireTimeSpan 设置为 1 天,如下所示。

static Startup()
{
    PublicClientId = "self";
    UserManagerFactory = () => 
      new UserManager<IdentityUser>(new UserStore<IdentityUser>());
    OAuthOptions = new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new PathString("/Token"),
        Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
        AuthorizeEndpointPath = new PathString("/api/UserAccount/ExternalLogin"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
        AllowInsecureHttp = true            
    };
}

在我将它部署到托管站点之前,我的本地电脑上一切正常。

我的应用程序可以登录并收到新令牌,使用此令牌,应用程序(每 2 秒)可以访问网络api 一整天,直到令牌过期。 但是,如果我停止应用程序(不停止应用程序)访问网络 api 5 到 6 分钟,然后再次启动它,我将收到“401 - 此请求的授权已被拒绝”。并且需要申请一个新的令牌。

现在,由于它在我的 PC 上运行,是否有任何我遗漏的东西可能导致拒绝,例如会话、cookie、主机系统中的设置等?

仅供参考我的电脑正在使用 IIS7.5,主机系统由 PleskWin 提供支持并使用 IIS8.5

我设法尝试了 Plesk,并在 ASP.Net 网站配置 > 会话设置 > 身份验证模式下找到了一个设置,我将其从原来的 "None" 更改为 "Windows" 并且它作品。 5 到 6 分钟后,它没有给我之前所说的错误。 仅供参考,在同一部分下,还有一个会话超时(分钟),它设置为 20,我从部署开始就没有更改它。

我仍然不确定此设置的作用或它与 IIS 的关系。有人可以启发我吗?

我正在处理完全相同的问题,但我的设置已在 'Windows' 上准备就绪,但我无法使其正常工作。

更改此处的设置(ASP.Net 网站配置),导致连接字符串无效,因为它没有正确写入 web.config。 你能告诉我在更改此设置("None" 到 "Windows")后你的 web.config 是否改变了吗? 您知道您的提供商以前是否遇到过这些问题吗?