ReturnUrl=/
От: IDecember Россия  
Дата: 03.08.10 17:15
Оценка:
Здравствуйте!

Windows Server 2008, IIS 7.5, ASP.NET 4.0. При попытке открыть сайт запросом вида 'www.example.com' происходит редирект на страницу логина с урлом 'www.example.com/login.aspx?ReturnUrl=/', не смотря на то, что дефолтная страница открыта для анонимных пользователей. Кусок конфига:
<authentication mode="Forms">
    <forms name=".ASPXAUTH" loginUrl="~/login.aspx"></forms>
</authentication>
<authorization>
    <deny users="?"/>
</authorization>
...
<location path="index.aspx">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

Страница index.aspx присутствует в списке дефолтных страниц IIS. Если же открыть сайт запросом вида 'www.example.com/index.aspx', то редиректа не происходит. Что подкрутить, уважаемые? Спасибо.
Re: ReturnUrl=/
От: vmpire Россия  
Дата: 03.08.10 18:04
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Здравствуйте!


ID>Windows Server 2008, IIS 7.5, ASP.NET 4.0. При попытке открыть сайт запросом вида 'www.example.com' происходит редирект на страницу логина с урлом 'www.example.com/login.aspx?ReturnUrl=/', не смотря на то, что дефолтная страница открыта для анонимных пользователей. Кусок конфига:

ID>
ID><authentication mode="Forms">
ID>    <forms name=".ASPXAUTH" loginUrl="~/login.aspx"></forms>
ID></authentication>
ID><authorization>
ID>    <deny users="?"/>
ID></authorization>
ID>...
ID><location path="index.aspx">
ID>    <system.web>
ID>        <authorization>
ID>            <allow users="*"/>
ID>        </authorization>
ID>    </system.web>
ID></location>
ID>

ID>Страница index.aspx присутствует в списке дефолтных страниц IIS. Если же открыть сайт запросом вида 'www.example.com/index.aspx', то редиректа не происходит. Что подкрутить, уважаемые? Спасибо.

<allow users="*"/> — это не разрешение для анонимных пользователей, а разрешение для всех аутентифицированных пользователей
Попробуйте <allow users="?"/>
Re[2]: ReturnUrl=/
От: IDecember Россия  
Дата: 04.08.10 10:34
Оценка:
Здравствуйте, vmpire, Вы писали:

V><allow users="*"/> — это не разрешение для анонимных пользователей, а разрешение для всех аутентифицированных пользователей

V>Попробуйте <allow users="?"/>

Не может быть.

A question mark (?) indicates that anonymous users are granted access to the resource. An asterisk (*) indicates that all users are granted access to the resource.

Re[3]: ReturnUrl=/
От: Gollum Россия  
Дата: 04.08.10 14:54
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Не может быть.


Правильно, * означает всех пользователей.
В конфиге написано, что доступ к index.aspx разрещен всем. Естественно, что редиректа не случится при прямом обращении, т.к. логин не требуется. То, что он происходит при обращении к корню сайта скорее всего означает, что есть какая-то страница которая в списке дефолтных страниц IIS находится раньше index.aspx, а к ней доступ закрыт.
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Eugene Agafonov on the .NET

Re[3]: ReturnUrl=/
От: vmpire Россия  
Дата: 04.08.10 15:00
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Здравствуйте, vmpire, Вы писали:


V>><allow users="*"/> — это не разрешение для анонимных пользователей, а разрешение для всех аутентифицированных пользователей

V>>Попробуйте <allow users="?"/>

ID>Не может быть.


ID>

ID>A question mark (?) indicates that anonymous users are granted access to the resource. An asterisk (*) indicates that all users are granted access to the resource.


Да, я поторопился, извините.
А index.aspx указана первой в списке дефолтных страниц?
Re[4]: ReturnUrl=/
От: IDecember Россия  
Дата: 04.08.10 15:57
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, IDecember, Вы писали:


ID>>Не может быть.


G>Правильно, * означает всех пользователей.

G>В конфиге написано, что доступ к index.aspx разрещен всем. Естественно, что редиректа не случится при прямом обращении, т.к. логин не требуется. То, что он происходит при обращении к корню сайта скорее всего означает, что есть какая-то страница которая в списке дефолтных страниц IIS находится раньше index.aspx, а к ней доступ закрыт.

Нет, к сожалению это не так Index.aspx — единственная в списке дефолтных страниц. Странно, но это проявилось после миграции на ASP.NET 4, до этого все было в порядке. Эта болезнь проявляется и на IIS 6, проверил.
Re[4]: ReturnUrl=/
От: IDecember Россия  
Дата: 04.08.10 15:58
Оценка:
Здравствуйте, vmpire, Вы писали:

V>А index.aspx указана первой в списке дефолтных страниц?


Ответил выше.
Re[4]: ReturnUrl=/
От: IDecember Россия  
Дата: 04.08.10 16:04
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, IDecember, Вы писали:


ID>>Не может быть.


G>Правильно, * означает всех пользователей.

G>В конфиге написано, что доступ к index.aspx разрещен всем. Естественно, что редиректа не случится при прямом обращении, т.к. логин не требуется. То, что он происходит при обращении к корню сайта скорее всего означает, что есть какая-то страница которая в списке дефолтных страниц IIS находится раньше index.aspx, а к ней доступ закрыт.

Такое ощущение, что веб-сервер не понимает, что на запрос '/' надо вернуть '/index.aspx'. Раньше понимал
Re[5]: ReturnUrl=/
От: vmpire Россия  
Дата: 04.08.10 16:16
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Такое ощущение, что веб-сервер не понимает, что на запрос '/' надо вернуть '/index.aspx'. Раньше понимал

А что в логах IIS? Он возвращает 302 сразу на login.aspx или сначала всё-таки на index.aspx?
Re[6]: ReturnUrl=/
От: IDecember Россия  
Дата: 04.08.10 16:46
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, IDecember, Вы писали:


ID>>Такое ощущение, что веб-сервер не понимает, что на запрос '/' надо вернуть '/index.aspx'. Раньше понимал

V>А что в логах IIS? Он возвращает 302 сразу на login.aspx или сначала всё-таки на index.aspx?

Возвращает 302 на login.aspx.
Re[6]: ReturnUrl=/
От: IDecember Россия  
Дата: 06.08.10 08:46
Оценка:
Здравствуйте, vmpire, Вы писали:

V>А что в логах IIS? Он возвращает 302 сразу на login.aspx или сначала всё-таки на index.aspx?


Опытным путем было установлено, что, если удалить модуль UrlAuthorization, то на страницу index.aspx по запросу '/' сервер будет пускать, вот правда после аутентификации не пускает на закрытую часть сайта
Re[7]: ReturnUrl=/
От: vmpire Россия  
Дата: 06.08.10 13:16
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Здравствуйте, vmpire, Вы писали:


V>>А что в логах IIS? Он возвращает 302 сразу на login.aspx или сначала всё-таки на index.aspx?


ID>Опытным путем было установлено, что, если удалить модуль UrlAuthorization, то на страницу index.aspx по запросу '/' сервер будет пускать, вот правда после аутентификации не пускает на закрытую часть сайта

Остались последние две идеи:
1. Попробуйте заменить <location path="index.aspx"> на <location path="~/index.aspx">

2. (левая идея) Попробуйте поменять местами


<location path="index.aspx">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

и

<authorization>
    <deny users="?"/>
</authorization>


чтобы конфигурация для index.aspx была первой
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.