首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将username值保存到cookie中,以便在用户希望被记住时可以检索它?

如何将username值保存到cookie中,以便在用户希望被记住时可以检索它?
EN

Stack Overflow用户
提问于 2013-10-29 19:59:47
回答 2查看 140关注 0票数 1

我正在尝试实现一个“记住我”的用户名在登录页面使用cookies。

我试图通过在cookie对象上使用Values.Add来实现这一点:

代码语言:javascript
复制
 ck.Values.Add("username", txtUName.Value);

但是,当我以这种方式添加一个值时,身份验证就会中断。(如果我删除线路,身份验证将再次生效。)

如何在不破坏cookie的情况下保留存储在cookie中的用户名?

该位的完整代码为:

代码语言:javascript
复制
            bool IsRemember = chkPersistCookie.Checked;

            FormsAuthenticationTicket tkt;
            string cookiestr;
            HttpCookie ck;

            tkt = new FormsAuthenticationTicket(1, txtUName.Value, DateTime.Now, DateTime.Now.AddMinutes(30), IsRemember, "your custom data");

            cookiestr = FormsAuthentication.Encrypt(tkt);

            ck = new HttpCookie("MYCOOKIEAPP", cookiestr);

            if (IsRemember)
            {
                ck.Expires = tkt.Expiration;
                ck.Values.Add("username", txtUName.Value);
            }
            else
            {
                ck.Values.Add("username", txtUName.Value);
                ck.Expires = DateTime.Now.AddMinutes(5);

            }

            ck.Path = FormsAuthentication.FormsCookiePath;
            Response.Cookies.Add(ck);
EN

回答 2

Stack Overflow用户

发布于 2013-10-29 20:18:25

我设法直接从FormsAuthenticationTicket获得了我需要的东西:

代码语言:javascript
复制
  if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
            {
                FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value); 


               txtUName.Value = ticket.Name;
            }
票数 2
EN

Stack Overflow用户

发布于 2013-10-29 20:25:28

尝试使用here中的这个示例,并阅读他们所写的内容。我在我的测试项目中对它进行了测试,它可以正常工作。

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    if(Request.Cookies["BackgroundColor"] != null)
    {
        ColorSelector.SelectedValue = Request.Cookies["BackgroundColor"].Value;
        BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
    }
}

protected void ColorSelector_IndexChanged(object sender, EventArgs e)
{
    BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
    HttpCookie cookie = new HttpCookie("BackgroundColor");
    cookie.Value = ColorSelector.SelectedValue;
    cookie.Expires = DateTime.Now.AddHours(1);
    Response.SetCookie(cookie);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19657622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档