2014-01-22 5 views
0

В настоящее время я создаю веб-приложение, и по очевидным соображениям безопасности мне приходится перенаправлять анонимных пользователей на страницу входа. Перед тем как сделать некоторые исследования, вот что у меня есть для моей страницы Site.Master:ошибка входа в систему (переадресация на страницу входа в систему, если она не вошла в систему)

[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/Logout.aspx"/> ] 

, как вы можете видеть, я создал свою собственную страницу Выход, который содержит код выхода из системы, FormsAuthentication.Signout и такие. Также есть ссылка «Выход» на этой странице, которая вызывает эту страницу.

Теперь все прекрасно работает сегодня утром. Когда я нажму ссылку «Выход» в LoginStatus, выйдите из строя. Я нажимаю ссылку «Выход» на моем сайте, выходим из строя. Я попробовал войти в систему снова, и приложение перенаправляет меня на мою страницу по умолчанию. Но когда я добавил этот бит кода здесь в моем Web.config:

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

что-то странное происходит. Я нажимаю ссылку «Выход» в LoginStatus, и приложение перенаправляет меня на страницу «Вход», а не на страницу «Выход». Более того, когда я пытаюсь снова войти в систему, приложение перенаправляет меня на страницу «Выход». Это заставляет меня войти в систему TWICE, чтобы снова вернуться в приложение.

Почему/Как это происходит? любое понимание было бы оценено.

ответ

0

Это потому, что вы запретили доступ к не прошедшим проверку подлинности пользователям ко всем страницам вашего сайта. Вам нужно добавить исключение для страниц, которые можно просмотреть без проверки подлинности.

Например - для предоставления доступа к домашней странице для любого пользователя: -

<location path="home.aspx"> 
     <system.web> 
     <authorization> 
      <allow users="?"/> 
     </authorization> 
     </system.web> 
    </location> 

Некоторые гиды здесь: -

http://www.codeproject.com/Articles/667473/ASP-NET-WebConfig-Location-and-Authroization-Tags

http://www.c-sharpcorner.com/UploadFile/prg.apv/usage-of-location-tag-in-Asp-Net-application/

+0

как я могу это сделать? Если бы вы могли предложить подход или что-то еще, это было бы высоко оценено. – JamesP

+0

См. Мой отредактированный ответ James – sh1rts

Смежные вопросы