2016-05-18 57 views
0

我有一個ASP.Net MVC5應用程序,它已運行數個月。不過,我今天發現了一些奇怪的東西。在asp.net中接收到ajax請求時,Request.IsAuthenticated爲false mvc

如果我登錄到這個應用程序,並放下了一個小時一個頁面無任何操作,然後我送使用jQuery服務器Ajax請求,在服務器端,System.Web.HttpContext.Current.Request.IsAuthenticatedfalse。但是,如果我發送「get」請求而不是ajax請求(例如,只需按F5刷新此頁面),則IsAuthenticatedtrue。我已檢查將.AspNet.ApplicationCookie cookie正確發送到服務器。

爲什麼Request.IsAuthenticated在接收到ajax請求時爲false?

+0

看看http://stackoverflow.com/questions/5258721/authorize-attribute-and-jquery-ajax-in-asp-net-mvc – Ben

+0

請顯示你用來發送ajax的代碼請求。這聽起來像cookies不是通過ajax請求發送的,而是當瀏覽器進行刷新時。 –

回答

0

您必須在ajax調用中包含帶有不記名令牌的Authorization標頭。以reponse爲例,請不要忘記標記前的字符串'Bearer '。 我希望它有幫助。

0

謝謝大家!

我發現我誤解了Get請求。實際上,Get請求也過期了。由於我有SSO服務器,瀏覽器只是重定向到SSO站點並重定向回來。這導致我認爲獲得要求沒有過期。 我已經在app.UseCookieAuthentication中設置了ExpireTimeSpan = TimeSpan.FromHourss(8),然後解決了這個問題。

相關問題