Pregunta

Actualmente estoy jugando con DotNetOpenAuth para hacer que un sitio web ASP.NET (C#) utilice OpenID en lugar de la rutina normal de inicio de sesión y contraseña para el manejo de usuarios y sesiones.

Hasta ahora he añadido el DotNetOpenAuth.dll Entré a mi proyecto y probé una página de inicio de sesión de prueba con lo siguiente:

<rp:OpenIdLogin ID="OpenIdLogin1" runat="server" />

Cuando ejecuto la página, ingreso una URL myopenid válida y el sitio web redirige a la página myopenid, donde ingreso mi contraseña y, si tiene éxito, regresa a mi default.aspx, debido a lo siguiente en mi web.config:

<authentication mode="Forms">
    <forms defaultUrl="/Default.aspx" loginUrl="~/Login.aspx"/>
</authentication> 

Ahora que el usuario ha "iniciado sesión", ¿cómo puedo manejar mi sesión?Por el momento no sé cómo puedo, por ejemplo, comprobar si la sesión sigue viva o cómo finalizarla.

Mi pregunta básica es, ¿cómo puedo administrar la sesión una vez que el usuario está autenticado con OpenID?


[Actualizar]

Ahora estoy usando lo siguiente para verificar la autenticación: HttpContext.Current.User, y con eso ahora puedo verificar si un usuario está autenticado con una sesión.

Ahora bien, ¿existe alguna forma posible de "vincular" los detalles del usuario que están almacenados en mi base de datos con una cuenta openid?

¿Fue útil?

Solución

Inicios de sesión OpenID con el OpenIdLogin control no son (de forma predeterminada) diferentes a un inicio de sesión con nombre de usuario y contraseña desde el punto de vista de ASP.NET.Como has descubierto HttpContext.Current.User se establece en cada solicitud HTTP entrante en función de una cookie HTTP que ASP.NET FormsAuthentication envía al navegador para mantener la sesión coherente de una solicitud a otra.Mientras estás en una página o en su código subyacente, el Page.User la propiedad es un medio aún más conveniente.

Pero si está realizando un control de acceso, en lugar de verificar si hay un usuario conectado en cada página, es mejor usar el <authorization> etiqueta en su archivo web.config para obligar al usuario a iniciar sesión antes de acceder a ciertas páginas o directorios de páginas.

En cuanto a vincular los detalles del usuario, la clave que desea asociar con los detalles de sus usuarios es el identificador reclamado OpenID, que es lo que OpenIdLogin asigna automáticamente al valor de Nombre de usuario para FormsAuthentication.Para que pueda recuperar o almacenar detalles del usuario en su base de datos según el valor de HttpContext.Current.User.Identity.Name, que será el valor único confiable y comprobado para cada usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top