使用asp.net中的FormsAuthentication在未受保护的页面上重定向

时间:2013-02-06 05:09:10

标签: asp.net redirect forms-authentication

我有一个奇怪的场景。我forms authentication正常工作了。我的受保护页面位于一个文件夹中,如果我导航到这些页面,我会被重定向到登录页面,并在URL中返回querystring。到现在为止还挺好。但我有一个页面是搜索结果页面。要求是,如果用户未登录,页面会隐藏其中一些数据,但页面的其余部分可以正常查看。

我用一些经过身份验证的数据隐藏了面板,工作正常。我遇到的问题是,如果用户完成搜索过程(这是多步骤),并且在看到结果想要登录后,他们必须单击页面顶部的登录链接。这将加载登录页面而不返回URL。毕竟,用户单击了指向新页面(登录页面)的链接。提交登录信息后,引用者现在错了(它将是当前的登录页面)。

因此,如果不弄乱对受保护文件夹有效的FormsAuthentication系统,如何将用户返回到他们选择自己登录后的最后位置(来自未受保护的页面) 。我意识到这不是FormsAuthentication的缺陷,解决方案可能根本没有任何关系,只是想要一些选项。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此

 Request.UrlReferrer.ToString();

它将为您提供上一页网址。

编辑1

以下是关于SO的类似问题
Finding previous page Url

编辑2

public Page PreviousPage { get; }

这是msdn链接
http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1