如何在asp.net中使用名称获取cookie

时间:2017-06-20 12:40:18

标签: c# asp.net asp.net-mvc cookies form-authentication

我需要获取具有指定名称的cookie。

如果用户凭据有效,我将设置如下cookie。

 public ActionResult Login()
    {
        if(user credentials are valid)
        {
         FormsAuthentication.SetAuthCookie("customer", true);
        }
    }

现在在我的其他控制器中,我需要查看是否有任何名为" customer"的cookie。

  public ActionResult Validate()
    {
        var cookie = Request.Cookies["customer"];
        //here I am getting cookies as null
    }

当我在Chrome设置中检查Cookie时,有cookie但没有名称customer,但它存在默认名称.ASPXAUTH

我的要求是不检查用户是否经过身份验证,我的要求是检查名称为"客户"退出&然后做一些我的东西。

如何解决此要求。

感谢。

1 个答案:

答案 0 :(得分:0)

FormsAuthentication.SetAuthCookie("customer", true);

使用特定的创建表单身份验证Cookie,但Cookie名称默认为.ASPXAUTH(您可以更改)。 Forms Auth模块进一步识别此类cookie。请注意,customer这里是Cookie的值,而不是名称。

但要创建具有任意名称的cookie,只需手动创建

public ActionResult Login()
{
   HttpCookie cookie = new HttpCookie("customer", "value");
   this.Response.SetCookie( cookie );
}

请注意,表单身份验证模块会识别具有任意名称(customer的Cookie ,因此不会将用户识别为已通过身份验证。