此请求已被拒绝授权

时间:2015-02-06 02:52:13

标签: asp.net-web-api http-status-code-401 unauthorized

我创建了一个带有Basic OAuth的webapi和一个使用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秒)可以访问webapi一整天,直到令牌过期。 但是,如果我停止应用程序(不停止应用程序)访问webapi 5到6分钟,然后我再次启动它,我将得到一个&#34; 401 - 此请求已拒绝授权。&#34 ;并且需要申请新的令牌。

现在,因为它可以在我的电脑上运行,是否有任何我错过的可能导致拒绝的内容,例如会话,cookie,主机系统中的设置等?

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

2 个答案:

答案 0 :(得分:1)

我设法在Plesk周围玩游戏并在ASP.Net Configuration for Website&gt;下找到了一个设置。会话设置&gt;身份验证模式,我将其从原始的“无”更改为“Windows”,它的工作原理。 5到6分钟后,它没有像我之前所说的那样给我错误。 仅供参考,在同一部分下,还有一个会话超时(分钟),它被设置为20,我从部署开始就没有改变它。

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

答案 1 :(得分:0)

我正在处理完全相同的问题,但我的设置已经完全在'Windows'上,但我无法让它正常工作。

更改此处的设置(网站的ASP.Net配置)会导致无效的连接字符串,因为它没有很好地编写web.config。 您能否在更改此设置(“无”到“Windows”)后更改web.config? 您知道您的提供商之前是否遇到过这些问题吗?

相关问题