سؤال

ما هي أفضل طريقة لتنفيذ "remember meوظيفة "وظيفة على شبكة الإنترنت ASP.NET؟

هل يجب علي استخدام ملفات تعريف الارتباط المخصصة أو هل هناك طريقة أبسط؟

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

المحلول

هل تستخدم المدمج Authenication الخدمات المقدمة من ASP.NET؟ إذا كان الأمر كذلك، من السهل جدا.

نصائح أخرى

بالنسبة لي كان الحل مختلفا بين ملف تعريف ارتباط جلسة متصفح (عدم الخلط بين ملفات تعريف الارتباط مع ملف تعريف ارتباط جلسة ASP.NET) ووضع واحد مستمر - وضع انتهاء صلاحية منخفض سيخلق ملف تعريف ارتباط مستمر مما يعني أنه يتذكر عندما يتم إغلاق المتصفح وإعادة -فرت داخل وقت انتهاء الصلاحية. ما يلي يعمل بالنسبة لي:

public void SetAuthenticationCookie(LoginView loginModel)
    {
      if (!loginModel.RememberMe)
      {
        FormsAuthentication.SetAuthCookie(loginModel.Email, false);
        return;
      }
      const int timeout = 2880; // Timeout is in minutes, 525600 = 365 days; 1 day = 1440.
      var ticket = new FormsAuthenticationTicket(loginModel.Email, loginModel.RememberMe, timeout);
      //ticket.
      string encrypted = FormsAuthentication.Encrypt(ticket);
      var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted)
        {
          Expires = System.DateTime.Now.AddMinutes(timeout),
          HttpOnly = true
        };
      HttpContext.Current.Response.Cookies.Add(cookie);
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top