0

我正在使用 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))
                {

这很奇怪,因为这只发生在使用我的域名访问它的情况下。

4

1 回答 1

0

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

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

于 2013-04-10T10:21:01.930 回答