настройка папок и файлов в web.config - PullRequest
0 голосов
/ 02 марта 2011

я пытаюсь запретить доступ к файлам и папкам для анонимных пользователей через webconfig для папки приложения "/" и разрешить доступ к специальным путям контроллера ("Shared", "Verfolgung").

Конфигурация дляпуть "Общий" работает, но доступ к "Verfolgung" требует аутентификации.

Может быть, вы скажете мне, что не так?

С уважением, float

часть web.config:

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" path="/" protection="All" timeout="2880" />
</authentication> 
<location path="Verfolgung">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>    
<location path="Shared">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

Ответы [ 2 ]

5 голосов
/ 30 марта 2011

В ASP.NET MVC не следует использовать элемент location в web.config. В то время как механизм веб-форм сопоставлен с физическими файлами на диске, механизм MVC использует маршрутизацию. Это означает, что вы можете случайно случайно разрешить доступ к «защищенному контроллеру» по пользовательскому маршруту.

Рекомендуемый способ защиты приложений ASP.NET MVC - использование атрибута Authorize, как показано в следующем примере:

public class HomeController : Controller
{
    [Authorize]
    public ActionResult Index()
    { 
        return View();
    }
}

Действие контроллера - это то, что вы хотите защитить, а не маршрут. Леви Бродерик, специалист по безопасности ASP.NET MVC, довольно открыто высказывается по этому вопросу:

  1. Исключение действия из авторизации в ASP.NET MVC 2
  2. Проблема с авторизацией с IIS и MVC .
1 голос
/ 02 марта 2011

Попробуйте это,

       <location path="Verfolgung">
           <system.web>
               <authorization>
                   <deny users="?"/>
                   <allow users="*" />
               </authorization>
          </system.web>
       </location>   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...