En la página de registro:
Código:
y en webform2.aspx:FormsAuthentication.Initialize() ' Se crea el ticket con el rol que le corresponda Dim ticket As New FormsAuthenticationTicket(1, _ dt.Rows(0).Item("Nombre"), DateTime.Now, _ DateTime.Now.AddMinutes(20), _ True, "Cliente", _ FormsAuthentication.FormsCookiePath) ' Se encripta el ticket Dim encTicket As String = FormsAuthentication.Encrypt(ticket) ' Se crea la cookie con el ticket encriptado Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName, encTicket) ' Caducidad de la cookie igual que el ticket cookie.Expires = ticket.Expiration ' Se envía la cookie Response.Cookies.Add(cookie) ' Se redirige al usuario Response.Redirect("webform2.aspx", True)
Código:
devuelve False y el nombre en blanco.Response.Write(context.User.IsInRole("Cliente")) Response.Write("<br>Nombre: " & context.User.Identity.Name)
En el archivo global.asax he puesto:
Código:
¿De qué me estoy olvidando? Imports System.Web Imports System.Web.SessionState Imports System.Security.Principal Imports System.Web.Security ...... Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs) ' Se desencadena al intentar autenticar el uso If Not (HttpContext.Current.User Is Nothing) Then If HttpContext.Current.User.Identity.IsAuthenticated Then If TypeOf HttpContext.Current.User.Identity Is FormsIdentity Then Dim id As FormsIdentity = CType(HttpContext.Current.User.Identity, FormsIdentity) Dim ticket As FormsAuthenticationTicket = id.Ticket Dim userData As String = ticket.UserData Dim roles() As String = userData.Split(",") HttpContext.Current.User = New GenericPrincipal(id, roles) End If End If End If End Sub