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



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

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

但是,如果我发送一个"get"请求而不是ajax请求(例如,只需按F5刷新此页面),则IsAuthenticated就是true。我已经检查了.AspNet.ApplicationCookie cookie是否正确发送到服务器。

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

您必须在ajax调用中包含一个带有承载令牌的Authorization标头。请以这个响应为例,不要忘记令牌之前的字符串'Bearer '。我希望它能有所帮助。

谢谢大家!

我发现我误解了Get请求。事实上,Get请求也已过期。由于我有SSO服务器,浏览器只重定向到SSO站点并重定向回。因为我认为Get requst没有过期。我在应用程序中设置了ExpireTimeSpan=TimeSpan.FromHours(8)。使用CookieAuthentication,然后解决了此问题。

最新更新