4

asp.net.i でフォーム認証を使用しています。認証 Cookie の有効期限を 60 分に設定し、web.config でセッション タイムアウトを 60 分に設定し、web.config で 60 分にタイムアウトし、iis アイドル タイムアウトでも60分

    <authentication mode="Forms">
        <forms loginUrl="~/Account/Login.aspx" timeout="60" defaultUrl="~/Landing.aspx" slidingExpiration="true"/>
    </authentication>
    <system.web>
        <sessionState timeout="60" mode="InProc"/>
    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
     2,                             // Version number
     txtUserName.Text.Trim(),      // Username
     DateTime.Now,                  // Issue date
     DateTime.Now.AddMinutes(60), // Expiration date
     false,                         // Persistent?
     userData                 // User data
     );

ユーザーが60分間アイドル状態の場合、フォーム認証を使用しているため、ユーザーは60分後にログインページにリダイレクトされる必要がありますが、ユーザーが60分間アイドル状態でない場合にどうなるかを知る必要があります。認証Cookieは期限切れになりますか? ユーザーがまだ認証されているという事実にもかかわらず?

編集

IIS のアプリケーション プール ID を Network Service に設定したことをもう 1 つ見逃しました

4

2 に答える 2

2

はい、ユーザーは引き続き期限切れになり、サーバーで利用可能なリソースを使用する権限がありません。FormsAuthentication チケットの単純なコンテナである Forms Authentication Cookie を使用しています。

チケットは非永続的であるため、「Cookie」の有効期限が切れ、ユーザーがログイン ページにリダイレクトされます。これは「認証」のみを処理することに注意してください。Session と混同しないでください。

セッションが「期限切れ」になっている可能性がありますが、ユーザーはまだ認証されているため、問題になる可能性があります。

したがって、質問に直接答えるには、「ユーザー認証」が期限切れになり、ログインページにリダイレクトされ、ログイン時に新しい Cookie が作成され、別の「セッション」オブジェクトが作成されます。時間外に前のものは失効します。

アドバイス: "Web.config" の Forms Timeout を Session よりも小さくしてください。Auth/Security 関連の Session への依存関係を構築しないでください。この 2 つは異なるコンテナーであり、そのように扱う必要があります。

于 2012-09-11T08:35:01.177 に答える
0

以下のリンクをよく読んでください。それはあなたにとってより速くなります。SlidingExpirationを見てください

有効期限は、有効期限の半分の時間の前に、リクエストごとに更新されます。

フォーム認証チケットと Cookieおよび フォーム要素について

于 2012-09-11T08:26:05.347 に答える