Вход в систему С# .NET не перенаправляется

Я пытаюсь настроить аутентификацию с помощью форм в IIS 7. Когда пользователь пытается перейти по любому URL-адресу на сайте, он перенаправляется на страницу входа, но после входа в систему он не покидает страницу. Если я включу анонимное ведение журнала, тогда страница входа будет работать нормально, и страница будет перенаправлена ​​на целевую страницу.
Вот файл web.config:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <appSettings>
        <add key="LandingPage" value="/home/default.htm" />
    </appSettings>

    <system.web>
        <compilation debug="false" />
        <authentication mode="Forms">
            <forms loginUrl="/login/login.aspx" timeout="60" />
        </authentication>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>

    <system.webServer>
        <httpErrors errorMode="DetailedLocalOnly">
            <remove statusCode="401" subStatusCode="-1" />
            <error statusCode="401" prefixLanguageFilePath="" path="/login/login.aspx" responseMode="ExecuteURL" />
        </httpErrors>
        <defaultDocument enabled="false">
            <files>
                <remove value="iisstart.htm" />
                <remove value="index.htm" />
                <remove value="Default.htm" />
                <remove value="Default.asp" />
                <remove value="default.aspx" />
            </files>
        </defaultDocument>
        <directoryBrowse enabled="false" />
        <modules>
            <remove name="FormsAuthentication" />
            <remove name="DefaultAuthentication" />
            <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="" />
            <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="" />
        </modules>
    </system.webServer>

</configuration>

Я следовал инструкциям на http://technet.microsoft.com/en-us/library/cc753252(v=ws.10).aspx и http://www.iis.net/learn/application-frameworks/building-and-запуск-aspnet-приложений/использование-aspnet-форм-аутентификации, но я, должно быть, что-то пропустил.

Спасибо.

РЕДАКТИРОВАТЬ: добавлены предлагаемые элементы, но происходит то же самое. Скрипач показывает это:

1   302 HTTP    localhost   /   148         iexplore:14040          
2   200 HTTP    localhost   /login/login.aspx?ReturnUrl=%2f 4,896   private     text/html; charset=utf-8    iexplore:14040          
3   304 HTTP    localhost   /images/newheader.jpg   0           iexplore:14040          
4   302 HTTP    localhost   /login/login.aspx?ReturnUrl=%2f 142 private, no-cache="Set-Cookie"      text/html; charset=utf-8    iexplore:14040          
5   302 HTTP    localhost   /home/default.htm   170         iexplore:14040          
6   200 HTTP    localhost   /login/login.aspx?ReturnUrl=%2fhome%2fdefault.htm   4,918   private     text/html; charset=utf-8    iexplore:14040          
7   304 HTTP    localhost   /images/newheader.jpg   0           iexplore:14040

person Striker    schedule 12.05.2013    source источник


Ответы (1)


Замените это

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

С этим

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

В первой конфигурации вы блокируете всех пользователей и забываете разрешить доступ аутентифицированным пользователям.

Подробнее см. здесь.

person Alfredo Cavalcanti    schedule 12.05.2013
comment
Этого не было, но мне также нужно было сказать, чтобы он проверял все страницы, а не только .aspx. Как только я внес это изменение и добавил разрешенных пользователей, он начал работать. Спасибо! - person Striker; 20.05.2013