Setting a Cookie in C#

Viewed 58

I am trying to set a rememberMe cookie. It works however the domain it is being set to is using the subdomain as well as the main domain .... How can I set it to use just the main domain? I have tried rememberMeCookie.Domain = "MyNewDomain"; but then no cookie gets set.

I need the cookie to be set to the main domain in order for my rememberMe cookie to be read from another site as I am implementing a SSO procedure.

var rememberUrlSelection = Request.Cookies["rememberUrlSelection_" + Session["GuiId"]];

if (login.RememberMe || !login.RememberMe)
{
    if (Request.Cookies["rememberMeWf"] == null)
    {
        HttpCookie rememberMeCookie = new HttpCookie("rememberMeWf");
                       
        var val = Newtonsoft.Json.JsonConvert.DeserializeObject<ApiResponse>(apiResp.Content);
        string remC = Newtonsoft.Json.JsonConvert.SerializeObject(val.responseObject);

        rememberMeCookie.Value = remC.UrlEncode();
        rememberMeCookie.Expires = DateTime.Now.AddMonths(3);
        rememberMeCookie.Domain = "MyNewDomain";
        Response.Cookies.Add(rememberMeCookie);
    }
}
1 Answers

You can try:-

cookie.Domain = Request.RequestUri.Host;

var rememberUrlSelection =
    Request.Cookies["rememberUrlSelection_" + Session["GuiId"]];

if (login.RememberMe || !login.RememberMe) {
  if (Request.Cookies["rememberMeWf"] == null) {
    HttpCookie rememberMeCookie = new HttpCookie("rememberMeWf");

    var val = Newtonsoft.Json.JsonConvert.DeserializeObject<ApiResponse>(
        apiResp.Content);
    string remC =
        Newtonsoft.Json.JsonConvert.SerializeObject(val.responseObject);

    rememberMeCookie.Value = remC.UrlEncode();
    rememberMeCookie.Expires = DateTime.Now.AddMonths(3);
    // rememberMeCookie.Domain = "MyNewDomain";
    rememberMeCookie.Domain = Request.RequestUri.Host;
    Response.Cookies.Add(rememberMeCookie);
  }
}
Related