登录后将用户重定向回原始操作

时间:2011-01-26 01:32:22

标签: c# asp.net

我想要完成的一系列动作如下。

背景信息:用户可以将产品添加到自己的帐户中。

  1. 用户尝试添加特定产品。 (他/她此时没有登录。)
  2. 在后面的代码中,我需要将用户重定向到登录页面,然后才能将产品添加到用户的帐户。
  3. 登录后,如何让系统返回逻辑以完成步骤1中的操作。
  4. 感谢。

2 个答案:

答案 0 :(得分:2)

当您重定向到登录页面时,请在查询字符串中添加原始URL 成功登录后,从查询字符串发送到URL。

答案 1 :(得分:2)

假设您正在使用FormsAuthentication,如果您不使用或不知道要使用什么,请在此处查看:http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx

好的,所以当你的用户试图访问受保护的页面时(即必须记录它们),ASP.NET的表单身份验证会将它们发送到登录页面,最好在Web配置中设置:

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

它还会将ReturnUrl查询字符串参数附加到该参数,因此登录页面知道它们来自何处: http://www.example.com/Public/Login.aspx?RETURNURL =%2fprivate%2forderproduct.aspx

然后,在您的登录页面中,假设它们已成功通过身份验证,您可以设置身份验证Cookie并将其重定向到它们的来源:

FormsAuthentication.SetAuthCookie(someUserIdentifier,isRememberMeSet);
FormsAuthentication.RedirectFromLoginPage(someUserIdentifier, isRememberMeSet);

当然,如果您不想使用FormsAuthentication,您仍然可以使用返回URL的概念。表单身份验证只是免费为您提供了很多。