4

我怎样才能一步一步地创建一个cookie,

当他/她单击记住我时存储用户登录 ID 和密码?选项

我打算在一段时间后杀死这个饼干

4

1 回答 1

14

Cookie 的创建方式与它们在普通的旧 ASP.NET 中的创建方式相同,您只需要访问Response.

        public ActionResult Login(string username, string password, bool rememberMe)
        {
            // validate username/password

            if (rememberMe)
            {
               HttpCookie cookie = new HttpCookie("RememberUsername", username);
               Response.Cookies.Add(cookie);
            }

            return View();

        }

但是,如果您使用的是 Forms Auth,您可以让您的 FormsAuth 票证 cookie 持久化:

        public ActionResult Login(string username, string password, bool rememberMe)
        {
            // validate username/password

            FormsAuthentication.SetAuthCookie(username, rememberMe);

            return View();

        }

您可以像这样读取 cookie:

public ActionResult Index()
{
    var cookie = Request.Cookies["RememberUsername"];

    var username = cookie == null ? string.Empty : cookie.Value; // if the cookie is not present, 'cookie' will be null. I set the 'username' variable to an empty string if its missing; otherwise i use the cookie value

    // do what you wish with the cookie value

    return View();
}

如果您使用表单身份验证并且用户已登录,您可以像这样访问他们的用户名:

public ActionResult Index()
{


    var username = User.Identity.IsAuthenticated ? User.Identity.Name : string.Empty;

    // do what you wish with user name

    return View();
}

可以解密和读取票证的内容。如果需要,您甚至可以在票证中存储少量自定义数据。有关更多信息,请参阅本文。

于 2012-05-14T09:29:17.857 回答