إنشاء ملف تعريف الارتباط غير مستمر مع FormsAuthenticationTicket

StackOverflow https://stackoverflow.com/questions/1819351

سؤال

وأواجه صعوبة في خلق ارتباط غير الثابت باستخدام FormsAuthenticationTicket. أريد لتخزين بيانات المستخدمين في التذكرة، لذلك أنا لا يمكن استخدام FormsAuthentication.SetAuthCookie () أو FormsAuthentication.GetAuthCookie () الأساليب. وبسبب هذا أنا بحاجة لإنشاء FormsAuthenticationTicket وتخزينها في HttpCookie.

ورمز بلادي يبدو مثل هذا:

DateTime expiration = DateTime.Now.AddDays(7);

// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2,
    user.Email,
    DateTime.Now,
    expiration,
    isPersistent,
    userData,
    FormsAuthentication.FormsCookiePath);

// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
cookie.Path = FormsAuthentication.FormsCookiePath;
if (isPersistent)
    cookie.Expires = expiration;

// Add cookie to response
HttpContext.Current.Response.Cookies.Add(cookie);

وعندما isPersistent متغير غير صحيح كل شيء يعمل بشكل جيد واستمر الكعكة. ولكن عندما isPersistent هو زائف يبدو أن ارتباط لان يستمر على أي حال. I التوقيع على في نافذة المتصفح، يغلق عليه ويفتح المتصفح مرة أخرى وأنا لا تزال دخولك. كيف يمكنني تعيين ملف تعريف الارتباط لتكون غير الثابتة؟

هل الكعكة غير الثابت نفس الكعكة الجلسة؟ ومعلومات ملف تعريف الارتباط المخزنة في sessiondata على الملقم أو هي الكعكة نقل في كل طلب / ردا على الخادم؟

هل كانت مفيدة؟

المحلول

وحاول حذف:

وif (isPersistent) { cookie.Expires = expiration; }

... والاستعاضة عنها بما يلي:

وif (!isPersistent) { cookie.Expires = DateTime.Now.AddYears(-1); }

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top