/ / Proteggi il file statico con Autenticazione moduli in IIS7 - asp.net, iis-7, autenticazione moduli

Proteggi file statico con Autenticazione moduli in IIS7 - asp.net, iis-7, autenticazione moduli

Abbiamo un sito che utilizza l'autenticazione basata su moduli con autenticazione anonima abilitata in IIS7.

Tuttavia, con le impostazioni di cui sopra, tutti possono accedere a file statici in questo sito come CSS, JavaScript e HTML.

Se disabilito l'autenticazione anonima, gli utenti non possono accedere alla pagina di accesso poiché non effettuano ancora l'accesso.

Da quanto ho capito, l'autenticazione basata su moduli deve funzionare con l'autenticazione anonima abilitata.

Quindi, come posso proteggere tutti i file di risorse?

Grazie !

risposte:

3 per risposta № 1

Per garantire che ogni file sia protetto da moduliautenticazione, instrada tutte le richieste attraverso la pipeline asp .net. Questo non è il comportamento predefinito di IIS. Per i file con contenuto statico, IIS in genere li distribuisce in base alle impostazioni descritte a livello di sito (ovvero Anonimo, Base, Windows, Digest).

Mentre puoi fare quello che ho menzionato, lo sareichiedendo perché vorresti farlo. Questo aggiunge un sovraccarico perché la pipeline .NET inizierà l'elaborazione di ogni file per determinare se servirlo o meno.

Fattibile, ma non raccomandato.


0 per risposta № 2

Penso di trovare la risposta.

Basandomi sulla risposta di @Josh, ho trovato questo pagina parlando di come utilizzare l'autenticazione basata su moduli per l'intera applicazione.

Penso che funzioni come quello che voglio.

  1. è necessario installare la funzionalità di autorizzazione URL

  2. Aggiungi quanto segue al tuo web.config

    <system.webServer>

    <moduli>

    <remove name = "FormsAuthenticationModule" />

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

    <remove name = "UrlAuthorization" />

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

    <remove name = "DefaultAuthentication" />

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