1

フォーム認証を使用する asp.net mvc 4 アプリケーションがあります。

ログインした人がこの期間 (ログインしてからの時間ではなく) アクティブでない場合、サイトの 30 分の時間制限を設定したいと考えています。現在、Cookie を保持しており、セッション状態がありません。

これを達成するための最良の方法は何ですか?

4

3 に答える 3

0

Cookie と混同する理由 タイムアウトを設定するだけでうまくいくはずです

以下のようなもの。

<authentication mode="Forms">
      <forms loginUrl="~/Test/LogOn" timeout="30" defaultUrl="~/Test/Index" />
</authentication>
于 2013-06-11T03:15:55.833 に答える
0

私が提案する解決策は、FormsAuth の「slidingExpiration」プロパティを利用することです。

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="20" slidingExpiration="true"/>
</authentication>

また、永続的な Cookie を作成するには、Login() で次のようにします。

FormsAuthentication.SetAuthCookie(model.UserName, true);

このようにして、20 分間の非アクティブのスライディング ウィンドウが作成されます。つまり、ユーザーが行う各アクションは、有効期限ウィンドウをさらに 20 分間進めます。したがって、実際に 20 分間アクティブでない場合、Cookie は期限切れになります。

于 2016-10-13T12:39:55.673 に答える