Windows "формирует" аутентификацию -перенаправление на чужую страницу! - PullRequest
3 голосов
/ 12 августа 2010

Как указано в заголовке - у меня есть файл web.config, который выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <authentication mode="Forms">
         <forms name="login" protection="All" timeout="30" loginUrl="login" defaultUrl="~/">
              <credentials passwordFormat="Clear">
                   <user name="admin" password="password" /> 
              </credentials>
         </forms>
        </authentication>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

Я хочу сделать именно то, что должно сказать ... Я хочу запретить всем пользователям, которые пытаются зайти на сайт.

Однако работает, перенаправляет на URL-адрес «Аккаунт / Логин? ReturnUrl =% 2flogin», о котором я никогда не слышал ...

Есть ли место, где я могу это изменить?

Ответы [ 4 ]

2 голосов
/ 11 января 2012

Я видел эту проблему раньше.Нет сомнений, что вы также получаете эту ошибку:

Сообщение об ошибке 401.2.: Неавторизовано: вход в систему не выполнен из-за конфигурации сервера.Убедитесь, что у вас есть разрешение на просмотр этого каталога или страницы на основе предоставленных вами учетных данных и методов аутентификации, включенных на веб-сервере.Обратитесь к администратору веб-сервера за дополнительной помощью.

И вы будете перенаправлены в «/ Account / Login», который даже не существует.Я полагаю, что по умолчанию используются некоторые из-за использования компонентов MVC , даже если вы используете веб-сайт ASP.NET Forms .Возможно, у вас есть несколько страниц Razor, и в ваш web.config было добавлено следующее:

<appSettings>
    <add key="webpages:Enabled" value="true" />
</appSettings>

Имея это, кажется, достаточно для того, чтобы испортить вашу страницу входа в систему, как обычно определяется:

<authentication mode="Forms">
  <forms loginUrl="login" timeout="43200"/>
</authentication>

Я решил эту проблему, добавив дополнительный ключ "loginUrl" в appSettings:

<appSettings>
    <add key="webpages:Enabled" value="true" />
    <add key="loginUrl" value="~/Login.aspx" /><!-- Override default -->
</appSettings>
1 голос
/ 13 января 2011

Параметр loginUrl не имеет абсолютного пути, поэтому путь смешивается с соответствующей папкой на сайте.

Решение:

loginUrl="~/login"

или

loginUrl="/login"
0 голосов
/ 13 января 2011

LoginUrl создается с кодом UrlPath.Combine(HttpRuntime.AppDomainAppVirtualPathString, loginUrl);, поэтому я предполагаю, что каким-то образом ваш корень вашего сайта установлен в «Приложение».

http://www.ureader.com/msg/15372322.aspx

0 голосов
/ 12 августа 2010

Проблема

loginUrl="login"

Это URL для отправки неаутентифицированным пользователям. Если URL-адрес вашей страницы входа - «Login.aspx», то вам тоже следует его установить.

loginUrl="login.aspx"

Часть в конце, ReturnURL, является адресом, на который перенаправляют пользователя, если он успешно войдет в систему.

...