无法使用自定义域名解密cookie

时间:2013-03-27 17:03:26

标签: cookies azure forms-authentication

我正在使用Windows Azure云服务,当我使用我的域名而不是[CLOUDSERVICENAME] .cloudapp.net访问它时,我遇到了身份验证Cookie问题。

我正在创建Cookie

 FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                     1,
                     serializeModel.Username,
                     DateTime.Now,
                     DateTime.Now.AddMinutes(15),
                     false,
                     userData);

        string encTicket = FormsAuthentication.Encrypt(authTicket);
        System.Web.HttpCookie faCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
        Response.Cookies.Add(faCookie);

但是当我尝试解密它时,我得到一个空值。

 HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                if (!String.IsNullOrEmpty(authTicket.UserData))
                {

这很奇怪,因为只有使用我的域名才能访问它。

1 个答案:

答案 0 :(得分:0)

我发现当我使用自定义域(在SSL证书下运行)时,cookie大小会增加。我相信这与证书加密有关。

要解决这个问题,我必须从cookie userdata中删除一些参数,以保证它不会增长到4096字节以上(浏览器Cookie限制:http://browsercookielimits.x64.me/