10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Come posso fare una authorization senza usare i controlli predefiniti di visualstudio?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, intendi "autenticazione"? Asp.net dispone di controlli per fare l'autenticazione, come ad esempio il controllo asp:Login, che mostra all'utente due caselle di testo per inserire username e password.

L'autorizzazione è una cosa diversa, è la fase in cui si permette o si vieta all'utente (sia esso anonimo o autenticato) di accedere ad un dato URL. Non ci sono controlli Asp.Net per questo. Le regole di autorizzazione vanno configurate dal web.config.
http://support.microsoft.com/kb/316871

In entrambi i casi la risposta è sì: puoi scriverti un HttpModule, che è una classe che si inserisce nel ciclo di vita della richiesta web e ti permette di intervenire in punti specifici, come appunto nelle fasi di Autenticazione e Autorizzazione.

Qui trovi un articolo di Stefano Mostarda che spiega che cos'è un HttpModule e come scriverne uno.
http://www.aspitalia.com/articoli/asp.net2/httpmodules.aspx
Un appunto, siccome l'articolo è del 2007: su sistemi operativi Windows Server 2008 o superiore, il modulo si registra nel nodo system.webServer/modules del web.config e non dentro system.web/httpModules.

Nell'esempio, Stefano sottoscrive gli eventi PreRequestHandlerExecute e PostRequestHandlerExecute mentre tu, per fare in modo che l'HttpModule possa inserirsi nelle fasi di autenticazione e autorizzazione, dovrai sottoscrivere AuthenticateRequest e/o AuthorizeRequest. Qui trovi un esempio completo (che puoi ovviamente personalizzare con la tua logica):
http://www.codeproject.com/Articles/5353/Custom-Authentication-provider-by-implementing-IHt

ciao
Modificato da BrightSoul il 02 ottobre 2012 20.22 -

Enjoy learning and just keep making
10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Grazie per avermi risposto, ho dato una occhiata a quello che mi hai linkato, ma non penso sia la soluzione migliore, provo a spiegare meglio il mio problema: ho una pagina aspx dentro una cartella, in questa pagina ci accedo mettendo lo user e pass, ma quando provo a fare operazioni sul database da questa pagina, mi dice accesso negato, ed ho notato che non mi riconosce come utente registrato.
Spero di essere stato chiaro, grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, prego ma aiutami a capire cosa sta succedendo esattamente.
Dunque, tu per prima cosa inserisci username e password in una pagina di login.
  • Usi la FormsAutheticantion con il controllo asp:Login oppure usi un altro sistema completamente personalizzato?

Effettuato il login, riesci a vedere correttamente la pagina aspx in questione, almeno finché non clicchi qualche bottone (es. "Salva") che va a scrivere dei dati nel database.
  • Che database usi? La connection string è sempre uguale o la modifichi in base all'utente?
  • La pagina aspx in che cartella si trova?

L'operazione di scrittura non va a buon fine e, anziché vedere la pagina aspx ti ritrovi con il messaggio "Accesso Negato" di IIS.
  • L'URL nella barra degli indirizzi è cambiato o è sempre quello della pagina aspx?
  • Che versione di IIS usi?

A questo punto torni nella pagina aspx di prima e risulti non più loggato, per cui devi reinserire username e password.
E' corretto?
Modificato da BrightSoul il 06 ottobre 2012 14.48 -

Enjoy learning and just keep making
10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Allora, lo so che è complicato ma cerco di spiegarmi:

- Non uso la FormsAutheticantion ma dei semplici textbox dove inserisco username e password, e vado a controllare nel db Access se questi dati sono corretti.

-La connectionstring non cambia

-La pagina si trova in una sottocartella del sito

-L'url cambia
11.886 messaggi dal 09 febbraio 2002
Contributi
bookmake ha scritto:
vado a controllare nel db Access


ok, prova questo per il momento: accedi al server e apri la cartella in cui si trova il file Access. Fai tasto destro sul file e poi clicca "Proprietà", scheda "Protezione" e da lì imposta i permessi di lettura e modifica per l'utente SERVIZIO DI RETE, che per default è quello con cui va in esecuzione il processo di asp.net. Poi, visita la pagina aspx e controlla se funziona.

ciao

Enjoy learning and just keep making
10 messaggi dal 01 ottobre 2012
www.gtecnologie.it
Ho provato ma niente, lo stesso errore.
Ti preciso che sono ancora in locale e non sul server, ma anche sul server mi da lo stesso errore.
11.886 messaggi dal 09 febbraio 2002
Contributi
Dunque, sembra banale dirlo ma è importante capire cosa stia sollevando questo errore "Accesso negato" e perché. A grandi linee si possono verificare due situazioni che scaturiscono quell'errore:
  • Il processo di asp.net non riesce ad accedere ad una risorsa, come per esempio il database access. In questo caso dovresti vedere la classica schermata gialla di errore di Asp.Net. Una cosa del genere:
    http://i1.asp.net/asp.net/images/aspnet_error.jpg
    E' quella la schermata che vedi? Lì ci sono molte informazioni tra cui il numero della riga di codice che ha scatenato il problema.
  • IIS ti nega l'accesso ad una pagina o ad una cartella perché non sei autorizzato ad accedervi. Hai detto che il tuo URL cambia quando vedi l'errore "Accesso Negato". Puoi dire come cambia? Qual è il percorso della pagina aspx e come diventa dopo?


bookmake ha scritto:

quando provo a fare operazioni sul database da questa pagina, mi dice accesso negato

Questo mi fa pensare che siamo nella prima situazione, ovvero il processo di asp.net non riesce ad aprire il db.
Fai così: crea una nuova pagina aspx in cui metti solo il codice per la connessione al db. Fai una query SELECT banale e poi richiudi subito il db. La pagina funziona? Poi modifica il codice ed esegui un comando UPDATE su una tabella a tua scelta. La scrittura dei dati funziona? Così puoi capire se è il db ad avere problemi.

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.