У меня есть ASP.NET.
Я хочу, чтобы пользователи, которые не вошли в систему, автоматически (повторно) перенаправлялись на страницу входа, например,
~/Account/Login.aspx
Как и сейчас, пользователи могут посещать страницы (например, default.aspx
) без входа в систему.
Примечание. Я работаю над (возможно, неверным) предположением, что ASP.NET имеет свой собственный цикл проверки подлинности, который происходит за моей спиной, прежде чем загружается каждая (и любая) страница.
Обновить @asawyer предоставил ссылку, которая, не помогая ответить на вопрос, действительно показала довольно графическую:
Ну, что вы пробовали?
У меня есть файл web.config
, который позволяет аутентифицировать Forms:
<?xml version="1.0"?>
...
<configuration>
...
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" name=".ASPXFORMSAUTH" slidingExpiration="true"/>
</authentication>
...
</system.web>
...
</configuration>
Когда я просматриваю страницу "по умолчанию", я могу просмотреть ее, например,
GET http://localhost:53149/WebSite/ HTTP/1.1
Host: localhost:53149
И я получаю содержимое страницы:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Другими словами, вместо того, чтобы заходить на сайт, я не вынужден регистрироваться на веб-сайте.
Это может быть связано с тем, что мой браузер работает локально на веб-сервере; но я использую Forms
, а не Windows
(а не Passport
, а не None
)).
Чтение бонусов
- Обзор проверки подлинности форм (С#)
- MSDN: поставщик проверки подлинности форм
- MSDN: Безопасность веб-приложений ASP.NET
- Аутентификация форм ASP.NET
- Требовать от пользователя входа в систему для просмотра документа с использованием ASP.NET
- Защита некоторых страниц от прямого доступа в ASP.NET
- Класс FormsAuthentication