Здравствуйте.
Написал простейшее приложение, в котором при запросе страницы Default.aspx происходит Form-based аутентификация. Помимо Default.aspx есть страница Test.aspx, доступ к которой имеет только определенный пользователь. На страницу Test.aspx попадают с Default.aspx. Пользователь проходит аутентификацию, попадает на Default.aspx и жмет ссылку на Test.aspx. Если пользователь тот, которому разрешен доступ к Test.aspx, то все хорошо, но если нет, происходит редирект на страницу входа login.aspx. Вопрос заключается в том, можно ли сделать так чтобы если к Test.aspx обращается пользователь доступ которому не разрешен, то его не отправляли бы на страницу входа (он же уже аутентифицировался), а выдавали бы страницу с 403 ошибкой например или был бы редирект на специальную страницу ошибки. Хотелось бы, чтобы это делалось декларативно, т.е. указывалось в настройках.
А так в принципе это можно реализовать программно, например на странице Test.aspx добавить что-нибудь типа следующего кода:
Код | <script language="C#" runat="server">
void Page_Load(Object Sender, EventArgs E) { if (!HttpContext.Current.User.Identity.Name.Equals("Fenty")) { Response.Redirect("ErrorAccess.aspx"); } } </script>
|
Буду признателен, если кто подскажет можно ли этого добиться.
файл web.config у меня имеет следующее содержание:
Код |
<?xml version="1.0"?> <!-- Note: As an alternative to hand editing this file you can use the web admin tool to configure settings for your application. Use the Website->Asp.Net Configuration option in Visual Studio. A full list of settings and comments can be found in machine.config.comments usually located in \Windows\Microsoft.Net\Framework\v2.x\Config --> <configuration> <appSettings/> <connectionStrings/> <system.web>
<compilation debug="true"/>
<authentication mode="Forms"> <forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60"> <credentials passwordFormat="Clear"> <user name="Cynthia" password="cyn"/> <user name="Flora" password="flo"/> <user name="Fenty" password="fang"/> </credentials> </forms> </authentication> <authorization> <allow users="Flora" /> <allow users="Fenty" /> <deny users="*" /> </authorization> <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" /> </system.web> <location path="Test.aspx"> <system.web> <authorization> <allow users="Flora" /> <deny users="*"/> </authorization> </system.web> </location>
</configuration>
|
|