在asp.net mvc中收到ajax请求时,Request.IsAuthenticated为false

时间:2016-05-18 07:49:14

标签: asp.net-mvc owin

我有一个ASP.Net MVC5应用程序,它运行了几个月。但是,我今天发现了一些奇怪的事情。

如果我登录这个应用程序并在没有任何操作的情况下搁置一个页面一小时,然后我使用JQuery向服务器发送ajax请求,在服务器端,System.Web.HttpContext.Current.Request.IsAuthenticatedfalse

然而,如果我发送" get"请求不是ajax请求(例如,只需按F5刷新此页面),IsAuthenticatedtrue。我已检查.AspNet.ApplicationCookie cookie是否正确发送到服务器。

为什么收到ajax请求时Request.IsAuthenticated为false?

2 个答案:

答案 0 :(得分:0)

您必须在ajax调用中包含带有持有者令牌的Authorization标头。请以此reponse为例,不要忘记令牌前的字符串'Bearer '。 我希望它有所帮助。

答案 1 :(得分:0)

谢谢大家!

我发现我误解了Get请求。事实上,Get请求也已过期。由于我有SSO服务器,浏览器只是重定向到SSO站点并重定向回来。那个原因我认为Get requst没有过期。 我在app.UseCookieAuthentication中设置了ExpireTimeSpan = TimeSpan.FromHourss(8),然后修复了这个问题。