クラスisPersistent
で見つかったプロパティの目的を理解しようとしています。http://msdn.microsoft.com/en-us/library/kybcs83h.aspxFormsAuthenticationTicket
- isPersistent を設定するシナリオはありますか?
isPersistent
どのシナリオで、true と falseに設定したいですか?
Expires
ブラウザ セッション間でユーザー認証 Cookie を永続化する唯一の方法は、チケットの作成後に作成される Cookieのプロパティを設定することであることがわかったため、このプロパティは冗長なようです。チケットの isPersistent 値が に設定されていてもfalse
。
isPersistent
また、チケットの有効期限 (Cookie ではなく)を true に設定して10 秒程度に設定しても、ほとんど効果がないこともわかりました。チケットは 10 秒後に期限切れになります。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
identity.Name,
DateTime.Now,
DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
isPersistent,
JsonSerializerService.ToJson(identity),
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
上記のコードをオプションで設定できるように変更できることを感謝しますexpires
if (isPersistent)
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
サンプル アプリケーションは、@ GitHub で作成されています。https://github.com/chrismoutray/AuthSampleこれは基本的に、isPersistent フラグを true に設定しても、クロス ブラウザー認証が機能しないことを示しています。