Проверка подлинности с помощью форм на MVC всегда перенаправляет на вход - PullRequest
1 голос
/ 12 октября 2010

У меня есть проверка подлинности с помощью форм на моем сайте MVC, и маршрут по умолчанию настроен на отправку пользователей в / home / index. Home / index исключен из требования для входа в систему через раздел местоположения Web.config. если я набираю http://Example/home/index,, я перехожу на домашнюю страницу, как и ожидалось, но если я просто делаю http://Example,, меня перенаправляют на страницу входа.

Если я отключаю аутентификацию и выполняю http://Example,, маршрут по умолчанию работает нормально, и меня отправляют на домашнюю страницу.

Почему аутентификация не соответствует маршруту по умолчанию? Спасибо!

Ответы [ 2 ]

6 голосов
/ 12 октября 2010

Не следует использовать элемент <location> в web.config для обработки авторизации в приложении ASP.NET MVC, так как это может конфликтовать с вашими маршрутами. Это используется в стандартных приложениях WebForms, но в MVC считается плохой практикой.

Рекомендуемый способ справиться с этим - украсить свои контроллеры / действия с помощью [AuthorizeAttribute]. Так что избавьтесь от всех location элементов в web.config и украсьте.

0 голосов
/ 11 июня 2013

Для меня проблема была MachineKey.Требуется расшифровать / зашифровать cookie , если вы это делаете (например, веб-ферма).Поскольку приложение не могло расшифровать cookie, даже если оно передавалось взад и вперед, приложение действовало так, как будто cookie даже не было.Добавление этого параметра в web.config исправило его для меня:

<machineKey compatibilityMode="Framework20SP2" validationKey="some_hard_coded_long_key" decryptionKey="another_hard_coded_long_key" validation="SHA1" />

Подробнее об machinekey .

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