Originariamente inviato da stefanomnn
ciao, che io sappia devi reimpostare i ruoli nell 'evento Request_authenticated ( nel global.asax:
innanzi tutto, quando fai il login, devi salvarti nel cookie di autenticazione la stringa contenente i ruoili: qui puoi trovare un esempio:
http://msdn.microsoft.com/it-it/libr...ionticket.aspx
A questo punto, nel global.asax metti questo codice:
Codice PHP:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (Context.User != null && Context.User.Identity.IsAuthenticated)
{
//user authenticathed; let's recovery information from his "ticket"
FormsIdentity userIdentity = (FormsIdentity)Context.User.Identity;
FormsAuthenticationTicket loginUserInfo = userIdentity.Ticket;
//recovery user roles from private user data
string[] roles = loginUserInfo.UserData.Split(",".ToCharArray());
//change current identity for running in specific role.
//GenericPrincipal is an object with a Pair Identity/[associated roles]
Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
}
ciao allora... ho provato ad inserire questo codice nel login :
codice:
Session("ID_Utente") = oObj.ToString
FormsAuthentication.SetAuthCookie(Me.txtUser.Text, True)
'-------------------Profilo---------------------
Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _
Me.txtUser.Text, _
DateTime.Now, _
DateTime.Now.AddMinutes(30), _
True, _
"Admin", _
FormsAuthentication.FormsCookiePath)
Dim encTicket As String = FormsAuthentication.Encrypt(ticket)
Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, encTicket))
'----------------------------------------
e questo nel Global.asax
codice:
Protected Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
If Not (HttpContext.Current.User Is Nothing) Then
With HttpContext.Current.User
If .Identity.IsAuthenticated Then
Dim Roles As ArrayList
Roles(0) = "admin" ' Data.GetUserRoles(User.Identity.Name)
Dim ID As FormsIdentity = CType(.Identity, FormsIdentity)
HttpContext.Current.User = New System.Security.Principal.GenericPrincipal(ID, Roles)
End If
End With
End If
prelevato da
http://www.google.it/codesearch?hl=i...global.asax.vb
la mia preoccupazione è come fare a prendermi il profilo dell'utente dal global.asax, in quanto io nel login lo memorizzo nella sessione, e nel global.asax non mi fa accedere alle sessioni!
oltre a questo problema mi pare che sia tutto a posto