4

私はasp.netを使用しており、サーバーへのすべてのリクエストに対してWebアプリケーションで$.ajax呼び出しを行っています。

セッション終了時にユーザーをログインページにリダイレクトしたい。

私のweb.configでは、次のように設定しました:

<authentication mode="Forms">
  <forms name=".CovertixAuthenticated" defaultUrl="Default.aspx" loginUrl="LoginPage.aspx" slidingExpiration="true" cookieless="UseCookies" protection="All" timeout="1"/>
</authentication>


  <sessionState mode="InProc" cookieless="UseCookies" timeout="1"/>

そして、.ajaxError をチェックインします。

$(document).ajaxError(function(xhr, props) {
    if (props.status == 401) {
        var ParentUrl = encodeURIComponent(window.parent.location.href);
        //alert(getLoginPage());
        document.location.href = getLoginPage() + "?ReturnUrl=" + ParentUrl;
    }
});

問題は、responseCode = 500 (内部サーバー エラー) を取得することです。

セッションが ajax 呼び出しで期限切れになっているかどうかを確認する最良の方法は何ですか? または、セッションが終了したときにユーザーをログインページに自動的にリダイレクトするにはどうすればよいですか?

4

1 に答える 1

0

助けてくれてありがとう!

web.config に追加するのを忘れました:

  <location path="MyPage.aspx">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

これで、期待どおり 401 が返されました。

于 2013-10-01T14:43:31.660 に答える