2

Stackoverflow は、他の多くの Web サイトと同様に OpenId を使用しています。ただし、OpenId を Stackoverflow に提供する必要はほとんどありませんが、他の OpenId 対応 Web サイトでは、1 日または 1 週間に 1 回提供する必要があります。

これは、セッションの有効期限が Web サイトであり、OpenId プロバイダーではないことを示唆しています。

ASP MVC の DotNetOpenId コードを見ると、OpenId プロバイダーによる認証が成功した後、識別子とブール値パラメーターを指定して FormsAuthentication.SetAuthCookie が呼び出され、Cookie を永続化する必要があるかどうかが判断されることがわかります。

デフォルト値が何であれ、2020年にこのCookieを強制的に期限切れにするにはどうすればよいですか.

4

2 に答える 2

4

MSDNから- 説明: ASP.NET 2.0 でのフォーム認証:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    "userName",
    DateTime.Now,
    new DateTime(2020, 01, 01), // value of time out property
    false, // Value of IsPersistent property
    String.Empty,
    FormsAuthentication.FormsCookiePath);

string encryptedTicket = FormsAuthentication.Encrypt(ticket);

HttpCookie authCookie = new HttpCookie(
                        FormsAuthentication.FormsCookieName, 
                        encryptedTicket);

authCookie.Secure = true;

Response.Cookies.Add(authCookie);
于 2010-02-09T17:31:35.713 に答える
1

を使用FormsAuthentication.RenewTicketIfOld()してチケットを更新できます。このメソッドは、現在のチケットの有効期限が切れているかどうかを確認し、そうでない場合は有効期限を延長します。サイトへのすべてのリクエストでこのメソッドを呼び出すことができます。これにより、ユーザーがサイトを使用し続けるにつれて、有効期限がさらに「スライド」します。

于 2010-02-09T17:13:18.883 に答える