Изменение проверки подлинности форм .NET 4.0? - PullRequest
0 голосов
/ 15 июня 2010

Я вижу новое поведение в проверке подлинности с помощью форм после обновления до .NET 4.0. Это происходит только на IIS 6, а не на 7.

Справочная информация. В файле web.config мы настраиваем проверку подлинности с помощью форм, а затем используем теги <authorization> для глобального запрета доступа анонимных / неаутентифицированных пользователей. Затем мы явно разрешаем доступ к странице login.aspx, используя тег <location>. Как правило, это работает нормально, как это было, когда мы были на .NET 2.0 (3.5).

Эта проблема возникает только при посещении корневого пути сайта, например: "http://myserver/". Наш документ по умолчанию настроен в IIS как login.aspx. В .NET 4.0 после посещения этого URL мы перенаправлен на "http://myserver/login.aspx?ReturnUrl=/". Если вы войдете отсюда, вы войдете в систему и вернетесь обратно на страницу входа (чёрт).

Просто хотел опубликовать это здесь, чтобы увидеть, если кто-то еще испытывает это. Он не указан ни в одной документации по "критическим изменениям", которую мне удалось найти. Либо я что-то упустил, либо модуль UrlAuthorization изменился и больше не «умел» относиться к документам IIS по умолчанию.

1 Ответ

2 голосов
/ 15 июня 2010

У вас не должно быть IIS по умолчанию login.aspx.

ASP.NET имеет свои собственные механизмы для обеспечения аутентифицированного доступа. В частности, для любого неаутентифицированного запроса к контенту, который требует аутентифицированных пользователей, он будет перенаправлять его на страницу, указанную в атрибуте loginUrl элемента Web.config authentication\forms.

...
<authentication mode="Forms" ...>
    <forms name="login" loginUrl="login.aspx" ... />
</authentication>
...

('login.aspx' является значением по умолчанию для этого свойства)

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