0

私はasp.netフォーム認証とasp.netログインコントロールを使用しています。ログインコントロールには「RememberMe」チェックボックスがあります。

ユーザーが認証された後、LoggedIn(object sender, EventArgs e) メソッドが発生し、このメソッド内で、これを使用して作成された認証 Cookie を表示しています

HttpCookie authCookie = FormsAuthentication.GetAuthCookie(userName, true);

authCookie.Expires 値をチェックすると、RememberMe がチェックされていない場合は 30 分、RememberMe がチェックされている場合は 50 年になると予想されます (これらは MS のドキュメントによるとデフォルトです)。

しかし、RememberMe をチェックするかどうかに関係なく、常に 30 分です。web.config を確認しましたが、「タイムアウト」フィールドに何も設定されていないため、なぜこれが起こっているのかわかりません。何か案は?

4

1 に答える 1

1

これはかなり紛らわしいですが、RememberMe 部分を正しく動作させるには、web.config の authentication/forms セクションで「timeout」と「slidingExpiration」の両方を設定する必要があるようです。

私はそれをそのように設定しましたが、すべてが期待どおりに機能しています

slidingExpiration="true" timeout="5120" 

rick strahl のブログが答えを見つけるのに役立ちました http://www.west-wind.com/WebLog/posts/157861.aspx

于 2009-02-19T09:24:02.500 に答える