Moduły Warunki wstępne:
Podstawowy aparat usług IIS korzysta z warunków wstępnych, aby określić, kiedy włączyć określony moduł. Na przykład przyczyny związane z wydajnością mogą określać, że chcesz wykonywać zarządzane moduły tylko dla żądań, które również trafiają do zarządzanej procedury obsługi. Warunek wstępny w poniższym przykładzie ( precondition="managedHandler"
) włącza moduł uwierzytelniania formularzy tylko dla żądań, które są również obsługiwane przez zarządzaną procedurę obsługi, takich jak żądania do plików .aspx lub .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Jeśli usuniesz atrybut precondition="managedHandler"
, uwierzytelnianie za pomocą formularzy będzie dotyczyło również treści, które nie są obsługiwane przez zarządzane programy obsługi, takie jak .html, .jpg, .doc, ale także klasycznych rozszerzeń ASP (.asp) lub PHP (.php). Zobacz „ Jak wykorzystać zintegrowany potok usług IIS ”, aby zapoznać się z przykładem włączania modułów ASP.NET do uruchamiania dla całej zawartości.
Można również użyć skrótu, aby umożliwić uruchamianie wszystkich modułów zarządzanych (ASP.NET) dla wszystkich żądań w aplikacji, niezależnie od „ managedHandler
” warunku wstępnego.
Aby umożliwić uruchamianie wszystkich zarządzanych modułów dla wszystkich żądań bez konfigurowania każdego wpisu modułu w celu usunięcia managedHandler
warunku wstępnego „ ”, użyj runAllManagedModulesForAllRequests
właściwości w <modules>
sekcji:
<modules runAllManagedModulesForAllRequests="true" />
W przypadku korzystania z tej właściwości managedHandler
warunek wstępny " " nie ma wpływu i wszystkie zarządzane moduły działają dla wszystkich żądań.
Skopiowano z modułów IIS Omówienie: warunki wstępne
<modules runAllManagedModulesForAllRequests="true">
. Ale teraz widzę, że może to spowodować obciążenie. Czy jest więc konkretny moduł odpowiedzialny, który mogę włączyć, aby uzyskać kropkę "." w MVC WebAPI Url, zamiast po prostu włączać je wszystkie za pomocą<modules runAllManagedModulesForAllRequests="true">
? Czy jest to na przykład moduł „UrlAuthorization”?