2013-03-27 2 views
0

Я использую облачную службу Windows Azure и когда я получаю доступ к ней с использованием моего доменного имени вместо [CLOUDSERVICENAME] .cloudapp.net У меня проблемы с аутентификационными куки.Невозможно дешифровать файл 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)) 
       { 

Это странно, поскольку это происходит только с использованием моего доменного имени для доступа к нему.

ответ

0

Я обнаружил, что, когда я использую свой собственный домен (работает под SSL-сертификатом), размер файла cookie увеличивается. Я считаю, что это связано с сертификацией.

Чтобы решить эту проблему, я должен удалить некоторые параметры из печенья UserData, чтобы гарантировать, что она не вырастет до более чем 4096 байт (Browser Cookie Limits: http://browsercookielimits.x64.me/)

Смежные вопросы