2016-05-18 14 views
0

私はASP.Net MVC5アプリケーションを持っており、数ヶ月間稼働しています。しかし、今日私はいくつかの奇妙なものを見つけました。asp.net mvcでajaxリクエストを受け取ると、Request.IsAuthenticatedはfalseになります

もし私がこのアプリケーションにログインし、1時間何も操作せずに1ページを横に置き、サーバ側のサーバにJQueryを使ってajaxリクエストを送信すると、System.Web.HttpContext.Current.Request.IsAuthenticatedfalseです。

しかし、「get」リクエストでajaxリクエストではない場合(たとえば、このページを更新するためにF5を押してください)、IsAuthenticatedtrueです。 .AspNet.ApplicationCookieのCookieがサーバーに正しく送信されていることを確認しました。

なぜajaxリクエストを受信したときにRequest.IsAuthenticatedがfalseになるのですか?

+0

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

+0

ajaxを送信するために使用しているコードを表示してください要求。クッキーがajaxリクエストで送信されていないように聞こえますが、ブラウザがリフレッシュを行うときです。 –

答えて

0

ajax呼び出しでベアラトークンを使用してAuthorizationヘッダーを含める必要があります。例としてreponseを参照し、トークンの前に文字列'Bearer 'を忘れないようにしてください。 私はそれが助けてくれることを願っています。

0

ありがとうございます!

私はGetリクエストを誤解していることがわかりました。実際、Getリクエストも期限切れです。私はSSOサーバーを持っているので、ブラウザはSSOサイトにリダイレクトしてリダイレクトし直します。私はGet requstが期限切れではないと思ったからです。 app.UseCookieAuthenticationでExpireTimeSpan = TimeSpan.FromHourss(8)を設定していて、この問題は修正されました。

関連する問題