Forms Authentication

09/08/2004 - 17:51 por Luis Esteban Valencia Muñoz perrohijueputa | Informe spam
Es un portal de DJs.

La idea es que los Djs puedan registrase(hecho). Y que una vez logeados
ellos puedan tener un menu personal( para subir su foto, su biografia,
etcetera)
Los administradores tambien podran tener un menu para ellos(para borrar djs,
moderar foros, etc)


No se como hacer la parte de autenticacion y la de los roles, y como mostrar
menus dependiendo del rol?


Ayuda teorica y con codigo por favor.





PD:Yo tengo Un SP que usa el PWDENCRYPT para meter la contraseña encriptada
en la base de datos.




Necesito bastante ayuda al respecto.



LUIS ESTEBAN VALENCIA MUÑOZ
MIEMBRO ACTIVO DE WWW.ALIANZADEV.NET

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
09/08/2004 - 20:02 | Informe spam
No se como hacer la parte de autenticacion y la de los roles, y como
mostrar menus dependiendo del rol?



Para poder asignar un rol deberas crear tu el cookie de autenticacion y
luego verificar ese cookie, crear el usuario y asignarlo como usuario del
contexto. Por ejemplo:

' Crear una cookie con el ticket de autenticacion para el usuario y rol
Public Function CrearAuthCookie(ByVal usuario As String, ByVal rol As
String) As HttpCookie

Dim ticket As New FormsAuthenticationTicket(1, usuario, DateTime.Now,
DateTime.Now.AddMinutes(20), False, rol)
Dim encryptedTicket As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName,
encryptedTicket)

Return cookie

End Function

Esta funcion la llamas cuando el usuario ingresa pasandole el nombre del
usuario y su rol y luego asignas la cookie a la respuesta de la pagina.
Luego en el evento AuthenticateRequest del Global.asax verificas si esta
presenta esa cookie y de ser asi creas el usuario que luego asignas como
usuario al contexto de la llamada:

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As
EventArgs)

' Obtengo la cookie
Dim cookie As HttpCookie Request.Cookies(FormsAuthentication.FormsCookieName)
If cookie Is Nothing Then Return

' Obtengo el ticket desde la cookie
Dim ticket As FormsAuthenticationTicket FormsAuthentication.Decrypt(cookie.Value)

' Reviso si la cookie expiro
If Not ticket.Expired Then

' Creo el usuario
Dim id As New System.Security.Principal.GenericIdentity(ticket.Name,
"FormsAuthentication")

' Creo el usuario con roles
Dim principal As New System.Security.Principal.GenericPrincipal(id,
New String() {ticket.UserData})

' Asigno el usuario al contexto
Context.User = principal

End If

End Sub

Luego solo debes utilizar User.IsInRole("el_rol_aqui") para saber si el
usuario logueado es de un determinado rol.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Luis Esteban Valencia Muñoz perrohijueputa
09/08/2004 - 20:34 | Informe spam
Conoces algun link para hacer esto paso a paso?
Es que esto esta como complicado para mi nivel.



LUIS ESTEBAN VALENCIA MUÑOZ
MIEMBRO ACTIVO DE WWW.ALIANZADEV.NET
"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:
> No se como hacer la parte de autenticacion y la de los roles, y como
> mostrar menus dependiendo del rol?

Para poder asignar un rol deberas crear tu el cookie de autenticacion y
luego verificar ese cookie, crear el usuario y asignarlo como usuario del
contexto. Por ejemplo:

' Crear una cookie con el ticket de autenticacion para el usuario y rol
Public Function CrearAuthCookie(ByVal usuario As String, ByVal rol As
String) As HttpCookie

Dim ticket As New FormsAuthenticationTicket(1, usuario, DateTime.Now,
DateTime.Now.AddMinutes(20), False, rol)
Dim encryptedTicket As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName,
encryptedTicket)

Return cookie

End Function

Esta funcion la llamas cuando el usuario ingresa pasandole el nombre del
usuario y su rol y luego asignas la cookie a la respuesta de la pagina.
Luego en el evento AuthenticateRequest del Global.asax verificas si esta
presenta esa cookie y de ser asi creas el usuario que luego asignas como
usuario al contexto de la llamada:

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As
EventArgs)

' Obtengo la cookie
Dim cookie As HttpCookie > Request.Cookies(FormsAuthentication.FormsCookieName)
If cookie Is Nothing Then Return

' Obtengo el ticket desde la cookie
Dim ticket As FormsAuthenticationTicket > FormsAuthentication.Decrypt(cookie.Value)

' Reviso si la cookie expiro
If Not ticket.Expired Then

' Creo el usuario
Dim id As New


System.Security.Principal.GenericIdentity(ticket.Name,
"FormsAuthentication")

' Creo el usuario con roles
Dim principal As New


System.Security.Principal.GenericPrincipal(id,
New String() {ticket.UserData})

' Asigno el usuario al contexto
Context.User = principal

End If

End Sub

Luego solo debes utilizar User.IsInRole("el_rol_aqui") para saber si el
usuario logueado es de un determinado rol.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Sashka
09/08/2004 - 21:21 | Informe spam
Hay varios ejemplos por allí pero la explicación de Eduardo está muy
clara en fin... aca algunos:

http://www.devhood.com/tutorials/tu...orial_idC3
http://www.codeproject.com/aspnet/f...leauth.asp
http://www.microsoft.com/spanish/ms...Portal.asp
http://msdn.microsoft.com/library/d...wamish7/ht
ml/vtconrole-basedsecurity.asp

Sashka

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:
> No se como hacer la parte de autenticacion y la de los roles, y como
> mostrar menus dependiendo del rol?

Para poder asignar un rol deberas crear tu el cookie de autenticacion y
luego verificar ese cookie, crear el usuario y asignarlo como usuario del
contexto. Por ejemplo:

' Crear una cookie con el ticket de autenticacion para el usuario y rol
Public Function CrearAuthCookie(ByVal usuario As String, ByVal rol As
String) As HttpCookie

Dim ticket As New FormsAuthenticationTicket(1, usuario, DateTime.Now,
DateTime.Now.AddMinutes(20), False, rol)
Dim encryptedTicket As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName,
encryptedTicket)

Return cookie

End Function

Esta funcion la llamas cuando el usuario ingresa pasandole el nombre del
usuario y su rol y luego asignas la cookie a la respuesta de la pagina.
Luego en el evento AuthenticateRequest del Global.asax verificas si esta
presenta esa cookie y de ser asi creas el usuario que luego asignas como
usuario al contexto de la llamada:

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As
EventArgs)

' Obtengo la cookie
Dim cookie As HttpCookie > Request.Cookies(FormsAuthentication.FormsCookieName)
If cookie Is Nothing Then Return

' Obtengo el ticket desde la cookie
Dim ticket As FormsAuthenticationTicket > FormsAuthentication.Decrypt(cookie.Value)

' Reviso si la cookie expiro
If Not ticket.Expired Then

' Creo el usuario
Dim id As New


System.Security.Principal.GenericIdentity(ticket.Name,
"FormsAuthentication")

' Creo el usuario con roles
Dim principal As New


System.Security.Principal.GenericPrincipal(id,
New String() {ticket.UserData})

' Asigno el usuario al contexto
Context.User = principal

End If

End Sub

Luego solo debes utilizar User.IsInRole("el_rol_aqui") para saber si el
usuario logueado es de un determinado rol.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida