1

我的 iis 文件夹结构就像

Default Web Site---->online and Accessing with www.sitename.com/online

Default Web Site---->trade and Accessing with www.sitename.com/trade

Default Web Site---->private and Accessing with www.sitename.com/private

这里的登录页面位于“默认网站---->trade/Login.aspx”内。当用户输入 www.sitename.com/online 或 www.sitename.com/private 或 www.sitename.com/trade 他/she 将重定向到网址 www.sitename.com/trade/Login.aspx。

所以我的需要是当用户输入“www.sitename.com/online”时,他/她应该保持与 www.sitename.com/online 相同的 URL 而不是“www.sitename.com/trade/Login.aspx”。所以我如何维护用户输入的 URL。

谢谢,乔比

4

3 回答 3

2

最好的方法是在您的重定向到登录页面中传递一个带有原始 url 的参数,然后让登录将您重定向回该原始 url

Location: http://example.com/login?ref=http%3A%2F%2Fexample.com%2Ffoo

然后登录后,您读取“ref”参数并执行位置重定向。

于 2012-09-13T06:33:16.950 回答
1

如果您使用的是内置会员提供程序,那么您可以使用[Authorize]属性,该属性具有将用户重定向到原始页面的功能,在用户获得身份验证后,系统将自动将用户重定向到请求的页面。

或者您可以尝试以下解决方案:

像这样的东西:

www.sitename.com/trade/Login.aspx?ReturnUrl=http%3A%2F%2Fsitemap.com%2Fonline

用户通过身份验证后,您可以将用户重定向到请求的页面。

Response.Redirect(Request.QueryString["ReturnUrl"]);
于 2012-09-13T06:51:46.100 回答
0

考虑使用 MVC 或至少将它的一部分与 ASPX 页面一起使用来呈现视图。这样,您就可以拥有与物理文件名无关的任何 Url。

用户很少输入任何网址……而且我不确定是否有人关心,只要网址有意义(或完全废话)。所以我认为在 /login 之类的地方呈现登录页面而不是重定向回原始页面是完全可以的。如果登录从未离开您的网站,您可以将原始网址保存在查询字符串中(如@chovy 建议的那样)或页面上的隐藏元素。如果登录离开您的站点(即用于 OAuth 身份验证),则可能会放置会话状态或 cookie 来存储返回 URL。

于 2012-09-13T06:39:43.970 回答