next_user
next_user

Reputation: 293

asp.net cookies stores no data

I am trying to add an option to my web page, so that when a user logs in to have a 'remember me' option. To implement this I am trying to store the user data (name+password) in a cookie, but it's not working at the moment. My code to store the cookie is:

                int timeout = 525600; 
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(model.UserName, true, timeout);
                string encrypted = FormsAuthentication.Encrypt(ticket);
                HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
                System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
                FormsAuthentication.SetAuthCookie(model.UserName, true);
                Request.Cookies.Add(cookie);

and on my logIn controller my code looks like:

        HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies.Get(FormsAuthentication.FormsCookieName);
        if (cookie != null)
        {
            FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
            var userName = ticket.UserData;
        }

The problem is that the userData cookie is always empty. What am I missing?

Upvotes: 0

Views: 332

Answers (1)

Vishva Nath Singh
Vishva Nath Singh

Reputation: 151

Try this.

Creating/Writing Cookies

Way 1

`HttpCookie StudentCookies = new HttpCookie("StudentCookies");
StudentCookies.Value = TextBox1.Text;
StudentCookies.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(StudentCookies);`

Way 2

    Response.Cookies["StudentCookies"].Value = TextBox1.Text;
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

Way 3

Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;
Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu";
Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar";
Response.Cookies["StudentCookies"]["LastName"] = "Vatsa";
Response.Cookies["StudentCookies"]["TotalMarks"] = "499";
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

Reading/Getting Cookies

string roll = Request.Cookies["StudentCookies"].Value;

Deleting Cookies

 if (Request.Cookies["StudentCookies"] != null)
{
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);
    Response.Redirect("Result.aspx");  //to refresh the page
}

reference here

Upvotes: 1

Related Questions