使用表单身份验证防止在另一个选项卡中复制URL

时间:2014-03-13 08:43:42

标签: c# asp.net web-applications

请帮我预防另一个标签中的网址复制粘贴。

我正在为我的应用程序使用表单身份验证。 我已登录访问了一些页面。

现在,如果我粘贴访问过的页面网址...我可以访问此页面而无需登录

我尝试添加以下代码..但没有使用..仍然能够看到没有登录的页面

<authentication mode="Forms">
    <forms name="Authen" protection="All" timeout="60" loginUrl="login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

如何在不登录的情况下停止页面访问(甚至复制并粘贴URL)?

2 个答案:

答案 0 :(得分:0)

该代码对于停止匿名使用您的网站是正确的。

我怀疑案例类似于用户只是关闭标签页或浏览器而不是通过链接或某种此类机制注销。在这种情况下,IIS将无法正确记录用户。

用户Cookie在将网址粘贴到浏览器中时是否仍然有效?即他们仍在技术上登录?

尝试通过链接实际注销,然后尝试将网址粘贴到另一个标签/浏览器中,这会导致要求用户重新登录。

尝试关闭标签页,然后尝试将网址粘贴到新标签页中,这会导致用户在登录时转到该网址。

您可以将测试时间缩短为1分钟并重新测试。

答案 1 :(得分:0)

在page_Load()

中使用此代码
 string strPreviousPage = "";
     if (Request.UrlReferrer != null)
       {
        strPreviousPage = Request.UrlReferrer.Segments[Request.UrlReferrer.Segments.Length - 1];          
        }        
    if(strPreviousPage =="")
        {
          Response.Redirect("~/Login.aspx");
         }

积分Asheej Kommery's