запретить анонимность для всех страниц, кроме пути "~ /" в asp.net - PullRequest
8 голосов
/ 10 октября 2011

в asp.net, я использую этот раздел конфигурации, чтобы запретить анонимным пользователям все страницы.

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

и я использую следующее, чтобы объявить исключение, к которому имеет доступ аноним.

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

это прекрасно работает для меня.

однако, как я могу установить только страницу по умолчанию в качестве исключения? (например, анонимный пользователь может получить доступ только к http://mysite/,, но НЕ может получить доступ к другим страницам на сайте?)

Я пытался использовать location path = "~ /" или "/", и это не работает.

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Если path="Default.aspx" не работает, то это невозможно сделать с помощью конфигурации. Синтаксис недоступен для указания только корня приложения в атрибуте пути.

0 голосов
/ 10 октября 2011

Я думаю, что вы можете изменить структуру папок, чтобы добиться этого.Затем вы можете изменить web.config, чтобы запретить пользователю

<configuration>
    <system.web>
        <authorization>
            <allow roles="administrators" />
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>
...