28 messaggi dal 17 novembre 2005
saluti a tutti.
chiedo aiuto alla comunità perchè mi si pone un problema di questo tipo:
ho sviluppato un'applicazione ASP.NET con framework 2.0 ed utilizzo l'autenticazione basata sui tickets per dare accesso alle diverse pagine sparne nelle cartelle.. pagine corrispondenti, ovviamente, alle diverse sezioni del sito.
ieri ho installato l'applicazione dal cliente e li nasce il problema..
sulla macchina in questione, un assemblato con windows2003 Small business, è stato installato anche SQLServer 2005 standard (non la express), importato il database e copiato i files del'applicazione.
dopo aver configurato i permessi di accesso dell'utente IIS sulla cartella del sito e impostato il framework 2.0 sembrava essere tutto ok.
l'applicazione gira, fa tuto quello che deve fare, legge, scrive, autentica perfettamente.
mi sposto su un client, apro il link puntando al server locale e la pagina di login è ok.
inserisco user e password e.. ritorna sulla pagina di login.

la cosa non si presenta se modifico i files web.config sparsi per le cartelle ed imposto <allow users="*"/> invece che <deny users="*"/> ed impostando manualmente per es. <allow roles="Gestore"/>.
funziona.. per modo di dire!
la funziona base di login preleva i dati dell'utente autenticato e li stampa a video in testa alla pagina.
dopo il login, usando <allow users="*"/>, vengo reindirizzato sulla pagina che dovrebbe visualizzarmi i dati dell'utente ma.. non viene stampato niente!
questi dati vengono caricati da una tabella utenti e immagazziati in semplici variabili di sessione.
il codice che crea il ticket di autenticazione è il seguente:

Session("user_id") = rd.Item("id")
Session("user") = rd.Item("utente")
Session("livello") = rd.Item("livello")

Dim ruoli As String = ""
ruoli += rd.Item("livello").ToString()
If rd.Item("flag_anagrafiche") Then ruoli += "|anagrafiche"
If rd.Item("flag_prenotazioni") Then ruoli += "|prenotazioni"
Session("ruoli") = ruoli.ToString()

Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, Session("user"), DateTime.Now, DateTime.Now.AddMinutes(30), _
True, ruoli)

Dim encTicket As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName, encTicket)
cookie.Expires = ticket.Expiration
Response.Cookies.Add(cookie)


deduco che o ci sono problemi con le sessioni o con il cookie..
pero'.. perchè lanciando direttamente l'applicazione sul server funziona?

altra cosa "strana"..
la stessa applicazione è duplicata altrove e accessibile via internet.
se con quel client accedo alla versione demo pubblica, funziona!!
ho provato diversi client collegati alla stessa rete e tutti hanno lo stesso problema.

i client accedono a internet attraverso proxy.

spero di essere stato chiaro e di aver fornito tutte le informazioni necessarie per valutare il problema.

a VOI la sentenza!! :)

ringrazio tutti in anticipo!

ciao

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.