Как сохранить страницу по умолчанию с проверкой подлинности с помощью форм? - PullRequest
4 голосов
/ 21 августа 2011

У меня есть веб-сайт, использующий проверку подлинности с помощью форм, моя дилемма в том, что мне нужно, чтобы пользователи переходили на страницу Default.aspx при первом переходе на сайт с помощью «www. [Site] .com».Затем у них есть возможность нажать на ссылку для входа, чтобы перейти на страницу входа и оттуда войти на сайт.

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

Есть мысли?

Обновление: как этот поток:

  1. Перейдите на www. [Site] .com
  2. Получить Default.aspx
  3. Нажмите LoginStatus элемент управления, настроенный с изображением
  4. Перенаправляет на Login.aspx

Учитываяэтот web.config выглядит так:

<authentication mode="Forms">
  <forms loginUrl="Default.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
</authentication>

Элемент управления LoginStatus выглядит следующим образом:

 <div class="loginStat">
            <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LoginImageUrl="~/images/Key-icon.png"
                LogoutImageUrl="~/images/LogOut32.png" LogoutPageUrl="~/" ToolTip="Log in/out" />
        </div>

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Ваша проблема в том, что вы указали Default.aspx как свойство "loginUrl" в вашем теге аутентификации "Формы".Ваша вторая проблема, вероятно, заключается в том, что вы не разрешаете анонимным пользователям доступ к Default.aspx.

Измените свой файл web.config так, чтобы он выглядел следующим образом:

<authentication mode="Forms">
    <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" timeout="20" protection="None" cookieless="UseCookies"/>
</authentication>

Ключ к разрешению анонимным пользователямпредставление Default.aspx без проверки подлинности с помощью форм, автоматически перенаправляющее их на Login.aspx, должно включать это в ваш web.config:

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

Это позволит пользователям видеть Default.aspx без входа в систему. Если пользовательВ качестве анонима элемент управления LoginStatus будет использовать свойство loginUrl тега «forms» в качестве местоположения для ссылки, которое в моей конфигурации будет Login.aspx, по вашему желанию.

1 голос
/ 21 августа 2011

Как насчет того, чтобы установить для свойства DefaultUrl значение "default.aspx" и исключить login.aspx из тега аутентификации форм?

Изменить на основе вашего комментария :
Видимо, вы не исключили login.aspx.Добавьте это в соответствующем месте внутри web.config вашего корня (если login.aspx и default.aspx находятся внутри корня)

<location path="login.aspx"> 
 <system.web>
  <authorization> 
    <allow users="*" />
  </authorization>
  </system.web>
</location>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...