Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Session e Global.asax
lunedì 03 settembre 2007 - 14.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ely.bise
Profilo
| Newbie
13
messaggi | Data Invio:
lun 3 set 2007 - 14:59
Ciao a tutti,
Sto cercando di fare in modo di valorizzare delle variabili di sessione all'atto dell'autenticazione per non dover fare un sacco di volte select per tirarmi fuori gli stessi dati.
Così ho pensato di mettere la valorizzazione delle variabili di sessione all'interno del file global.asax, dentro Application_AuthenticateRequest dopo che ho valutato il ruolo dell'utente.
Solo che mi da un errore, precisamente: Stato della sessione non disponibile in questo contesto.
Qual'è il problema? Qualcuno può aiutarmi? Mi risparmierebbe parecchie noie poter fare select una volta sola, anche perchè poi ho pagine diverse per ogni tipo di gruppo, ruolo utente.
Grazie mille
protected void Application_AuthenticateRequest(Object sender,EventArgs e)
{
if (Request.IsAuthenticated)
{
string CodApplicazione = System.Configuration.ConfigurationManager.AppSettings["CodApplicazione"].ToString();
string CodAgenzia = System.Configuration.ConfigurationManager.AppSettings["CodAgenzia"].ToString();
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection();
cnn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnAttiva"].ConnectionString;
cnn.Open();
String selectQry = "Select cpgroups.name " +
"from " + CodApplicazione + "UtenteLogin inner join cpusers on UlCodiceCpuser=cpusers.code " +
"inner join cpusrgrp on cpusrgrp.usercode = cpusers.code " +
"inner join cpgroups on cpgroups.code = cpusrgrp.groupcode " +
"where UlUserName = '" + User.Identity.Name + "'";
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(selectQry, cnn);
System.Data.SqlClient.SqlDataReader rdr = cmd.ExecuteReader();
// creazione dell'array contenente i gruppi a cui appartiene l'utente
ArrayList Ruoli = new ArrayList();
while (rdr.Read()) {
Ruoli.Add(rdr["name"].ToString().Trim());
}
rdr.Close();
//select per estrarre le variabili di sessione
selectQry = "select UlCodice, UaCodiceContatto, UaCodiceFiliale " +
"from " + CodApplicazione + "UtenteLogin inner join " + CodApplicazione + "UtenteAgenzia " +
" on UlCodice = UaCodice and UaAgenziaFiliale = '" + CodAgenzia + "' " +
"where UlDisabilitato <> 'S' and UlUserName = '" + User.Identity.Name + "' ";
cmd = new System.Data.SqlClient.SqlCommand(selectQry, cnn);
rdr = cmd.ExecuteReader();
if (rdr.Read())
{
//salvo le variabili di sessioni globali
Session["CodFilialeUtente"] = Convert.ToString(rdr["UaCodiceFiliale"]);
Session["CodUtente"] = Convert.ToInt32(rdr["UlCodice"]);
Session["CodPersona"] = Convert.ToString(rdr["UaCodiceContatto"]);
}
rdr.Close();
cnn.Close();
String[] StringRuoli; //= new String[Ruoli.Count];
StringRuoli = (String[])Ruoli.ToArray(typeof(String));
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(HttpContext.Current.User.Identity, StringRuoli);
}
}
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !