【发布时间】:2015-02-06 02:52:12
【问题描述】:
我创建了一个带有基本 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
};
}
在我将本地 PC 部署到托管站点之前,一切正常。
我的应用程序可以登录并接收新令牌,并且使用此令牌,应用程序(每 2 秒)能够访问 webapi 一整天,直到令牌过期。 但是,如果我停止应用程序(不停止应用程序)访问 webapi 5 到 6 分钟,然后再次启动它,我将收到“401 - 此请求的授权已被拒绝”。并且需要请求一个新的令牌。
现在,由于它可以在我的 PC 上运行,我是否错过了任何可能导致拒绝的内容,例如会话、cookie、主机系统中的设置等?
仅供参考,我的电脑使用 IIS7.5,主机系统由 PleskWin 供电并使用 IIS8.5
【问题讨论】:
-
与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?。顺便说一句,这是“提前致谢”,而不是“致谢”。
标签: asp.net-web-api http-status-code-401 unauthorized