запретить анонимность для всех страниц, кроме пути "~ / " в asp.net
in asp.net, я использую этот раздел конфигурации, чтобы запретить анонимным пользователям для всех страниц.
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
и я использую следующее, чтобы объявить исключение, к которому anonymous может получить доступ.
<location path="Welcome.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
это прекрасно работает для меня.
однако, как я могу установить только страницу по умолчанию в качестве исключения? (например: anonymous может получить доступ только http://mysite/, но не может получить доступ к другим страницам на сайте?)
Я тоже пытался использовать путь="~/" или "/" и это не работает.
2 ответов
Если path="Default.aspx"
не работает, тогда это нельзя сделать с помощью конфигурации. Нет синтаксиса, доступного для указания только корня приложения в атрибуте path.
Я думаю, вы можете изменить свою структуру папок, чтобы достичь этого. Тогда вы можете изменить web.config
запретить
<configuration>
<system.web>
<authorization>
<allow roles="administrators" />
<deny users="?" />
</authorization>
</system.web>
</configuration>