当前位置:编程学习 > C#/ASP.NET >>

如何防止用户直接敲地址连接页面??????

各位高手:
    我想实现所有的用户都必需是从我的页面里面给的连接进行浏览页面。而不能直接从浏览器的地址栏中敲入网址进行连接//请问是否可以实现??
另外问一下浏览器地址栏是否区分大小写??
--------------------编程问答-------------------- 地址栏参数 是不区分 大小写的

最好的方法 定义一个basepage.cs基础类
用于用户 身份 验证

需要验证的页面都从这个类 继承 --------------------编程问答-------------------- 登陆成功后 
this.Session["IsLogin"] = true;
在你不想让用户没有登陆就能到这个页面的时候可以在 Page_Load 中写下
// 在此处放置用户代码以初始化页面
// 在此处放置用户代码以初始化页面
if ( ( this.Session["IsLogin"] == null ) || ( !(bool)this.Session["IsLogin"] ) )
{
this.Response.Redirect( "你的登陆页面.aspx" );
} --------------------编程问答-------------------- FORMS认证 --------------------编程问答-------------------- To:hertcloud(·£DOTNET@C/C++£·时间路上|做个热心人) ( ) 
谢谢,,我想请问一下定义一个basepage.cs基础类。用于身份验证的信息是存在session里面吗??如果是存在Session里面就有一个问题是:如果我通过了身份验证(我已经登录了),这时
我又可以在地址栏中输入地址来进行网页访问了。。
我想实现的所有页面都不能从地址栏中输入(除了首页)请问是否能够实现???????
--------------------编程问答-------------------- 地址栏不区分大小写 --------------------编程问答-------------------- TO:hertcloud(·£DOTNET@C/C++£·时间路上|做个热心人) 
AND ocan(OK! I Can!!!) 
那为什么我访问网站时有的站点不区分大小写便访问不了,,为什么呀??
--------------------编程问答-------------------- 那地址样指定的URL是否区分大小写?? --------------------编程问答-------------------- 地址栏是不区分大小写的,请问那个网站的地址是区分大小写的啊?
你想不能直接从浏览器的地址栏中敲入网址现在的情况看来是不可能的 --------------------编程问答-------------------- TO:hb_gx(高升)
真的是这样吗??有没有不同答案,太可怕了!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 每个网页都是asp程序,每个asp程序都接受post的一个值(只接受post的,用request.form获取),地址栏是不可能输入post的变量值的。这样就可以强制必须使用你的网页上的点击来跳转了。

不明白楼主为什么会想这么做呢? --------------------编程问答-------------------- 不让在地址栏输入不大可能,只有在程序里面判断,用SESSION可以做的
以前没有做过,不过可以给个建议:
用一个SESSION保存网页的名字
假如有页面A,B要必须通过页面A到B,可以在A跳转到B之前给SESSION赋值B网页的名字,然后在B网页加载的时候判断SESSION是否为B网页名字,不是则跳回A或者跳到报错页面 --------------------编程问答-------------------- TO:谢谢。。好办法!强!
对了,我问一下在ASP中instr是否区分大小写?
好像ASP都不区分大小写。。可是我测试 
If Instr("operatro,Oper,OOO","oper") > 0 Then
Response.Write("不区分")
Else
Response.Write("区分")
End If
结果返加"区分"

怪了,是不是我IIS出问题了??请高手指点.. --------------------编程问答-------------------- To : bejon(阿牛[如果我懂,必坦诚相告;如果您懂,请不怜赐教。]) ( ) 信
强,好办法,,
再有就是我在我机器上试,
地址栏上输入http://localhost/Admin/index.asp结果找不到页面
我的服务器上是Index.asp
输入http://localhost/admin/Index.asp结果成功。。
我都感觉牛了,是不是我的IIS出问题了??请高手指点!! --------------------编程问答-------------------- form认证,会自动跳到登陆界面 --------------------编程问答-------------------- 多谢各位 --------------------编程问答-------------------- 这样实现起来好像有点复杂,记得有一个方法,可以获得上一个页面的地址。也许对你有帮助。

不过你为什么要这样限制别人呢。出于什么的考虑呢,能不能说下。可能有别的更好的办法。 --------------------编程问答-------------------- FORM验证不会吗?..最简单最有效的方法 --------------------编程问答-------------------- sub page_load(....)
if page.ispostback=false then
 If  Request.UrlReferrer Is Nothing Then
            exit sub
        End If
end if
end sub

好象直接从浏览器输入的就没有"urlreferrer",我曾经试过是没有,你自己再试看看吧.
--------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 可以看一下document.referrer --------------------编程问答-------------------- 恩,LZ都已经说的很清楚了~~~
最简单的就是FORM验证了 --------------------编程问答-------------------- 同意楼上的,,FORM验证。。 --------------------编程问答-------------------- hertcloud(·£DOTNET@C/C++£·时间路上|做个热心人) ( 

你说的那个方法能详细点吗,学习下 --------------------编程问答-------------------- 我曾经也有过这样的需求,在做一个OA项目,我是根据用于的权限来判断

说来说去还是根据Session来判断! --------------------编程问答-------------------- 谢谢各位:
    很多都说用FORM验证,
我有两点疑问:1.FORM验证是将验证信息放入Cookie里,如果客户端禁止Cookie,FORM会正常吗?
2.如果我已经经过验证了,然后我再在浏览器的地址栏中输入页面地址.不也可以吗,还是没达到不准用浏览器输入的效果呀??
--------------------编程问答-------------------- 收藏 --------------------编程问答-------------------- 验证源页面 referer属性得到的地址就是你通过哪个页面连接过来的,直接练的话为空,js就可以实现
--------------------编程问答-------------------- LZ的意思不是要求身份认证.判断是否直接从浏览器输入按照我以上的方法可以实现. --------------------编程问答-------------------- 多谢 WORLDNIC() 
   你的方法是可以的,(再加个Request.ServerVariables防盗连,)应该比较完美了.
多谢 KOFMYLOVE() 你的方法也是可以的...... --------------------编程问答-------------------- sub page_load(....)
if page.ispostback=false then
 If  Request.UrlReferrer Is Nothing Then
            exit sub
        End If
end if
end sub
这个是可以  顶 --------------------编程问答-------------------- UrlReferrer 验证 --------------------编程问答-------------------- 在起点页面设置一个session,在目标页面判断这个session是否存在 --------------------编程问答-------------------- 弄一下配置文件即可
<!-- 以下节点作用一个页面的访问权限,可写多个,也可去掉第一句话,在一个文件夹放webconfig对整个文件夹起作用  -->
<!--
  <location path="xxx.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>    
  </location>
  -->
</configuration>//加这个是为了让你知道配置文件放哪个位置

--------------------编程问答-------------------- 搞不清楚。。。学习。。。 --------------------编程问答--------------------
引用 31 楼 sunjay117 的回复:
UrlReferrer   验证

判断URL来路 --------------------编程问答-------------------- 在你网站的登录页面中编写代码

成功登录后,把用户名和密码封装成实体类,存进Session中

if(登录成功)
{
  Users users = new Users(LoginID,LoginPWD);
  Session["user"] = users;
  Response.Redirect("welcome.aspx");
}
else
{
  Response.Redirect("Login.aspx");   //若不成功,再指向登录页面
}

然后在其他页面中都加入这段代码就OK了。 --------------------编程问答--------------------
引用 11 楼 jsyxo 的回复:
不让在地址栏输入不大可能,只有在程序里面判断,用SESSION可以做的
以前没有做过,不过可以给个建议:
用一个SESSION保存网页的名字
假如有页面A,B要必须通过页面A到B,可以在A跳转到B之前给SESSION赋值B网页的名字,然后在B网页加载的时候判断SESSION是否为B网页名字,不是则跳回A或者跳到报错页面


+1 --------------------编程问答-------------------- 楼主可以结贴了。
其实判断来路几乎是唯一的办法了。 --------------------编程问答-------------------- 被访问地址需要一个包含时间验证的长度较长的参数即可。 --------------------编程问答-------------------- 搞了类 专门认证的。。。。 --------------------编程问答--------------------
引用 11 楼  的回复:
不让在地址栏输入不大可能,只有在程序里面判断,用SESSION可以做的
以前没有做过,不过可以给个建议:
用一个SESSION保存网页的名字
假如有页面A,B要必须通过页面A到B,可以在A跳转到B之前给SESSION赋值B网页的名字,然后在B网页加载的时候判断SESSION是否为B网页名字,不是则跳回A或者跳到报错页面
这样子不会很乱么。。写个类似于配置的表? --------------------编程问答-------------------- 你防止不了的,只能简单防一下,最简单的就是refer判断了 --------------------编程问答-------------------- refer或user-agent综合判断下
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,