2011-04-18 40 views
7

Soy bastante nuevo en el desarrollo de formularios web, jugando con un proyecto creado utilizando la plantilla de la aplicación web ASP.NET en VS 2010. Después de que el usuario inicie sesión con éxito, quiero que el usuario redirija a una página que creé. ¿Cómo modifico mi proyecto para redirigir al usuario después de iniciar sesión? Cualquier muestra/tutorial/etc. son muy apreciados.¿Cómo puedo redireccionar a una página después de iniciar sesión correctamente?

Gracias!

+0

posible duplicado de [Redireccionar usuario a una página específica después de inicio de sesión] (http://stackoverflow.com/questions/4789718/redirect-user-to-a específico de páginas-post-inicio de sesión) – Talljoe

Respuesta

11

Para simplemente redirigir a una nueva página cuando su usuario ha iniciado sesión, use la propiedad DestinationPageUrl de su control de inicio de sesión ... suponiendo que esté utilizando el control Login que es.

Si necesita hacer algo más avanzado, puede utilizar el controlador de eventos OnLoggedIn para su control Login para realizar un redireccionamiento manualmente, o agregar cualquier código para el registro de eventos y tal.

Si ha rodó su propio control de acceso, y es justo con cosas como cuadros de texto y botones de control, a continuación, en su caso Button_Click, sólo puede utilizar Response.Redirect("DestinationHere"); tomar sus usuarios a una página nueva.

+0

¿cómo podemos pasar variables de esto? – numerah

4

Después marcó de entrada:

Response.Redirect("url"); 
+0

Si, como dice el PO, que está utilizando la plantilla de aplicación web ASP.NET, se utiliza el control de inicio de sesión, que ignorará un Response.Redirect() a favor de la DestinationPageUrl –

1

Asumo que está utilizando el control de sesión ASP.NET. Hay una propiedad DestinationPageUrl de ese control que maneja exactamente eso. Si el inicio de sesión fue exitoso, el usuario se redirige a la URL provista en esa propiedad.

0
Server.Transfer(*url*) ? 

(método de HttpServerUtility)

que sé casi nada acerca de ASP.NET, pero desde mi aturdimiento Java desarrollador web, redirigir es malo porque se trata de otra red de ida y vuelta al navegador y volver cuando realmente solo quieres continuar procesando en otra página.

Y Response.Redirect() realmente emite un código de respuesta 302 ("prueba esta otra URL en su lugar") de vuelta al navegador. puaj. XP

Server.Transfer() se parece a la versión Java de Response.Forward()

+0

Esto es viejo, pero siento que esta respuesta merece algunas aclaraciones sobre por qué no es bueno para su uso en un inicio de sesión. Server.Transfer se comporta de manera muy diferente a Response.Redirect en ejecución. Response.Redirect emite una solicitud adicional, pero eso se debe a que llama al navegador para redirigir. Server.Transfer, sin embargo, funciona como una máscara de URL ya que el servidor realiza la redirección. En este caso, el navegador seguiría mostrando la url de inicio de sesión, pero el contenido de la * url * especificado. Información adicional: http: //www.codeproject.com/Tips/724972/Difference-Between-Response-Redirect-and-Server-Tr – Daved

+0

Creo que en ese caso particular, configuraría la aplicación/servidor para requerir autenticación antes de acceder a ciertas URL, por lo que (1) el usuario no autenticado emitiría la solicitud GET para el recurso directamente, (2) el servidor redireccionaría al usuario a una página de autenticación pero recordaría la URL solicitada original, (3) luego de la autenticación, el servidor mostraría al usuario la página original con la URL original en el barra del navegador Aunque no estoy seguro de cómo funciona eso detrás de escena; hemos llegado al límite de mi conocimiento. :) – JohnL4

1
<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/Admin/Default.aspx"> 
</asp:Login> 

Ir a Propiedades y Conjunto DestinationPageUrl.

0

Para el desarrollo de soluciones de servidores de SharePoint

Page.Response.Redirect("url"); 
Cuestiones relacionadas