/ / Защитете статичния файл с удостоверяване на формуляри в IIS7 - asp.net, iis-7, forms-authentication

Защитете статичния файл с удостоверяване на формуляри в IIS7 - asp.net, iis-7, forms-authentication

Имаме сайт, използващ удостоверяване на формуляри с активиран анонимно удостоверяване в IIS7.

Въпреки това, с горната настройка, всеки има достъп до статични файлове в този сайт, като CSS, JavaScript и Html.

Ако деактивирам анонимното удостоверяване, потребителите нямат достъп до страницата за вход, тъй като все още не са влезли в профила си.

От моето разбиране Формулярите за удостоверяване трябва да работят с активирано анонимно удостоверяване.

И така, как мога да осигуря всички файлове с ресурси?

Благодаря !

Отговори:

3 за отговор № 1

За да може всеки файл да бъде защитено чрез формуляриудостоверяване, маршрут на всички заявки през asp .net тръбопровод. Това не е поведението по подразбиране на IIS. За файлове, които са статично съдържание, IIS обикновено ги извежда въз основа на настройките, описани на ниво сайт (т.е. Anonymous, Basic, Windows, Digest).

Докато можете да направите това, което споменах, щях да бъдакато попитате защо бихте искали да направите това. Това добавя режийни, защото .NET тръбопроводът ще започне да обработва всеки файл, за да определи дали да го обслужва или не.

Достъпно, но не се препоръчва.


0 за отговор № 2

Мисля, че намерих отговора.

Базирайки се на отговора на @ Josh, намерих това страница говорейки за това как да използвате удостоверяването на формуляри за цялото приложение.

Мисля, че работи като това, което искам.

  1. трябва да инсталирате функцията за разрешаване на Url

  2. Добавете следното към web.config

    <system.webServer>

    <modules>

    <remove name = "FormsAuthenticationModule" />

    <add name = "FormsAuthenticationModule" type = "System.Web.Security.FormsAuthenticationModule" />

    <remove name = "UrlAuthorization" />

    <add name = "UrlAuthorization" type = "System.Web.Security.UrlAuthorizationModule" />

    <remove name = "По подразбиране" />

    <add name = "DefaultAuthentication" type = "System.Web.Security.DefaultAuthenticationModule" />