Контроллер ASP.NET MVC2 не распознает билет проверки подлинности - PullRequest
0 голосов
/ 09 июня 2011

У меня есть веб-приложение, которое использует пользовательские формы для проверки подлинности. Я вхожу в систему с использованием специального механизма аутентификации и создаю собственный билет аутентификации.

Из веб-приложения я затем совершаю регулярные Ajax-вызовы контроллеру MVC2, чтобы спросить, аутентифицирован ли пользователь. Метод контроллера выглядит следующим образом:

public ActionResult GetAuthenticationStatus()
        {
            string responseDoc;

            if (HttpContext.User != null
                && HttpContext.User.Identity.IsAuthenticated)
            {
                responseDoc = "{\"status\":\"authenticated\"}";
            }
            else{
                responseDoc = "{\"status\":\"unauthenticated\"}";
            }

            return new ContentResult { Content = responseDoc, ContentType = "application/json" };

        }

Журналы IIS показывают, что cookie-файл билета проверки подлинности успешно поступает в IIS, но мой метод контроллера возвращает {\ "status \": \ "unauthenticated \"}, поэтому очевидно, что условия моего контроллера для проверки проверки подлинности пользователя неверны .

В Chrome все отлично работает. Тем не менее, он не работает в мобильном Safari. Кто-нибудь может увидеть что-то не так с моим методом контроллера?

Спасибо.

1 Ответ

0 голосов
/ 09 июня 2011

Я верю, что у меня есть ответ. Вам нужно специально установить web.config, чтобы принудительно использовать куки. Мои настройки аутентификации в web.config теперь выглядят так:

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" 
             cookieless="UseCookies" 
             />
    </authentication>

Это проблема cookieless = "UseCookies", которая решила проблему. Значением по умолчанию для этого является UseDeviceProfile. Должно быть, у iPad нет согласованного режима UseDeviceProfile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...