Запретить доступ к папке "admin" в web.config
Я новичок в ASP.NET, поэтому простите меня, если это просто.
Я пытаюсь запретить доступ к моей папке "Admin" через web.config. Я посмотрел на другой ответ на аналогичный вопрос, и они рекомендуют использовать папку <location>
, однако, когда я вставляю "Admin/" в путь, я получаю следующую ошибку:
атрибут пути должен быть относительный виртуальный путь. Это не может начните с любого из "". '/' или '\'. C:\Личные\Проекты\OliverSalon\web.config
Я попытался разместить "Admin", "/Admin" и "Admin/"
<configuration>
<connectionStrings>
<add name="OliverSalonConnectionString1" connectionString="Data Source=localhost;Initial Catalog=OliverSalon;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="false" targetFramework="4.0" />
<authentication mode="Forms">
<forms name="Oliver" loginUrl="Login.aspx" path="/" timeout="20">
<credentials passwordFormat="Clear">
<user name="OliverSalon" password="cuts"/>
</credentials>
</forms>
</authentication>
<authorization >
<deny users="?"/>
</authorization>
</system.web>
<location path="/Admin">
<system.webServer>
<directoryBrowse enabled="false"/>
</system.webServer>
</location>
Ответы
Ответ 1
Это путь назад из моих дней в веб-форме.
Поместите файл web.config в папку администратора.
Содержимое должно быть:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="admin" />
<deny users ="*" />
</authorization>
</system.web>
</configuration>
** РЕДАКТИРОВАТЬ, чтобы ответить на ваш вопрос
Если вы установите URL-адрес для входа, фреймворк автоматически отправит вас на страницу входа в систему, если неавторизованный пользователь попытается получить доступ к вашей папке администратора.
<authentication mode="Forms">
<forms loginUrl="Login.aspx" timeout="20" slidingExpiration="true" cookieless="AutoDetect" protection="All" requireSSL="false" enableCrossAppRedirects="false" defaultUrl="Default.aspx" path="/"/>
</authentication>