26 messaggi dal 08 luglio 2009
Usando i ruoli sono riuscito ad autorizzare l'accesso ad alcune pagine inserite in una cartella ,anzichè usando il classico web.config

<system.web>
<authorization>
<allow roles="Admin" />
</authorization>
</system.web>

utilizzando una tabella di un db di sql server.

Per far questo ho scritto un http module personalizzato.

Se l'utente non è autorizzato, nell'AuthorizeRequest do un errore HTTP 401 così ASP.NET capisce che non ha i permessi e manderà alla pagina di errore.

Tutto funzione se nel web.config è impostato authentication mode="Forms" , mentre non funziona se authentication mode="Windows" .

Qualche suggerimento?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, il debugger che ti dice?
Metti un breakpoint all'interno dell'HttpModule e controlla se il nome utente è quello che ti aspetti di trovare. Ad esempio, fai caso se contiene il nome macchina come prefisso. Es. SERVER\spilby anziché spilby. Questa differenza *potrebbe* essere la causa del problema.

spilby ha scritto:

utilizzando una tabella di un db di sql server.

Va bene ma implementa anche un meccanismo di caching (ammesso che tu non l'abbia già fatto).
Senza caching, la tua applicazione dovrà stabilire una connessione in più ad ogni richiesta solo per decidere se autorizzarla o meno.
Magari usa una SqlDependency per rigenerare la cache quando i dati della tabella cambiano.
http://msdn.microsoft.com/en-us/library/ms178604%28v=vs.100%29.aspx

ciao

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.