2011-04-18 116 views
7

我对Web表单开发相当陌生,正在使用VS 2010中使用ASP.NET Web应用程序模板创建的项目。在用户成功登录后,我希望用户重定向到我创建的页面。如何修改我的项目以在登录后重定向用户?任何样品/教程/等非常赞赏。成功登录后如何重定向到页面?

谢谢!

+0

的[重定向用户登录后的特定页面(http://stackoverflow.com/questions/4789718/redirect-user-to-a可能重复登录后的特定页面) – Talljoe 2011-04-18 01:07:07

回答

11

要在用户登录后简单重定向到新页面,请使用登录控件的DestinationPageUrl属性...假设您使用的是Login控件。

如果您需要做更高级的事情,您可以使用Login控件的OnLoggedIn事件处理程序手动执行重定向,或为事件日志记录等添加任何代码。

如果您已经推出了自己的登录控件,并且只使用文本框和按钮控件等事件,那么在您的Button_Click活动中,您可以使用Response.Redirect("DestinationHere");将用户带到新页面。

+0

我们怎样才能通过这个变量? – numerah 2013-07-23 05:05:45

4

后您检查登录:

Response.Redirect("url"); 
+0

如果您按照OP的说法使用ASP.NET Web应用程序模板,那么您正在使用Login控件,该控件将忽略以DestinationPageUrl为目标的Response.Redirect() – 2013-09-26 19:04:58

1

我假设你正在使用ASP.NET登录控件。该控件的DestinationPageUrl属性完全可以处理该属性。如果登录成功,用户将被重定向到该属性中提供的URL。

0
Server.Transfer(*url*) ? 

(上HttpServerUtility法)

我知道旁边没有关于ASP.NET,但是从我的Java Web开发发呆,重定向是不好的,因为它涉及到另一个网络往返于浏览器和回来时你真的只想继续在另一个页面中处理。

而Response.Redirect()确实发出了一个302响应代码(“试试这个其他的url”),回到浏览器。呸。 XP

Server.Transfer的()看起来像Response.Forward的Java版本()

+0

这是旧的,但我觉得这个答案值得一些澄清,为什么它不好使用登录。 Server.Transfer与执行中的Response.Redirect行为非常不同。 Response.Redirect确实发出了额外的请求,但那是因为它调用浏览器来重定向。但是,Server.Transfer像URL掩码一样工作,因为重定向是由服务器完成的。在这种情况下,浏览器仍然会显示登录网址,但是会指定* url *中的内容。附加信息:http://www.codeproject。com/Tips/724972 /差异之间的响应重定向和服务器-T – Daved 2016-01-28 22:32:28

+0

我认为在这种特殊情况下,我会配置应用程序/服务器需要身份验证之前访问某些网址,所以(1)未经身份验证的用户会直接为资源发出GET请求,(2)服务器会将用户重新路由到认证页面,但记住原始请求的URL,(3)认证后,服务器会向用户显示原始页面,其中包含原始URL浏览器栏。不过,我不确定幕后的工作原理。我们已经达到了我的知识极限。 :) – JohnL4 2016-02-08 20:35:21

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

进入属性和套装DestinationPageUrl。

0

为SharePoint场解决方案的开发

Page.Response.Redirect("url"); 
相关问题