2016-07-13 2 views
0

Мне передан веб-проект в ASP.NET. Он содержит папку Content с файлом index.html. На данный момент люди могут перейти на mysite.com/content/index.html. В этом проекте не было MVC-контроллеров (я сам этого не делал).Проверка подлинности в папке не работает

Я не хочу, чтобы люди переходили непосредственно на страницу HTML. У меня есть страница входа в корень моего сайта (так mysite.com), поэтому я хочу перенаправить пользователей там, если они не вошли в систему. Я создал свой собственный HomeController с помощью метода Index. Я установил идентификатор ASP.NET для авторизации всех запросов к этому методу. Я хочу настроить проверку подлинности форм, чтобы перенаправить все неавторизованные запросы в папку Content и ее содержимое в/Home/Index (или просто на веб-сайт root /).

Я нашел несколько ответов на этом сайте и в других местах, которые очень похожи: В Web.config корня веб-сайта, у меня есть этот код:

<configuration> 
     <location path="~/Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
     </location> 

    <!-- some other nodes --> 

    <system.web> 
     <authentication mode="Forms"> 
      <forms name=".ASPXAUTH" loginUrl="/" /> 
     </authentication> 
    </system.web> 
</configuration> 

Но это не работает, если я иду на mysite.com/content/index.html Я не перенаправлен на mysite.com. Я также попытался расщепить их в разных файлах web.config, как описано в ответе this. Что я делаю не так?

ответ

1

труба mvc не включает статическое содержимое (html).

добавьте эту строку в файл system.webServer в файлах проекта web.config.

<modules runAllManagedModulesForAllRequests="true"> 
+0

Работал для меня! Благодаря кучу, многие ответы не упомянули об этой части. – ohyeah

Смежные вопросы