如何防止直接输入URL进入某个页面
做了个系统,想防止直接输入URL进入某个页面。考虑了三种方法:
1.屏蔽掉IE的地址栏、菜单。
2.用session,慢的说
3.身份验证,具体怎么做?哪位大侠帮帮忙,给分给分!!!
或者有其它更好的方法?
1.屏蔽掉IE的地址栏、菜单。
2.用session,慢的说
3.身份验证,具体怎么做?哪位大侠帮帮忙,给分给分!!!
或者有其它更好的方法?
1 把页面地址和登录角色的关系写入数据库,
比如某角色可以看那些页面
2 写一个basepage类,检查当前登录者所属角色是否有浏览当前页面的权限
3 在需要检查的页面的cs文件里继承该类
比如某角色可以看那些页面
2 写一个basepage类,检查当前登录者所属角色是否有浏览当前页面的权限
3 在需要检查的页面的cs文件里继承该类
简单一点就在web.config文件里定义一下不允许匿名访问就可以了啊.
或者用session判断if session( "username ")= " " then 跳转到首页登陆页面
或者用session判断if session( "username ")= " " then 跳转到首页登陆页面
还可以用ServerVariables( "HTTP_REFERER ")来检查页面来源
Request.ServerVariables( "HTTP_REFERER ")的工作方式
下列情况是从浏览器的地址栏正常取得Request.ServerVariables( "HTTP_REFERER ")的:
1.直接用 <a href>
2.用Submit或 <input type=image> 提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)
下面我们再看看Request.ServerVariables( "HTTP_REFERER ")不能正常取值的情况:
1.从收藏夹链接
2.单击 ' '主页 ' '或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5. <%Response.Redirect%>
6. <%Response.AddHeader%> 或 <meta http-equiv=refresh> 转向
7.用XML加载地址
Request.ServerVariables( "HTTP_REFERER ")的工作方式
下列情况是从浏览器的地址栏正常取得Request.ServerVariables( "HTTP_REFERER ")的:
1.直接用 <a href>
2.用Submit或 <input type=image> 提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)
下面我们再看看Request.ServerVariables( "HTTP_REFERER ")不能正常取值的情况:
1.从收藏夹链接
2.单击 ' '主页 ' '或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5. <%Response.Redirect%>
6. <%Response.AddHeader%> 或 <meta http-equiv=refresh> 转向
7.用XML加载地址
用session[ "userid "]来判断,在登陆的时候存进session,当掉线或者直接输入url是就跳转到登陆页面
每次进入首页时,在数据库中给当前用户添加一个随机数,如果进入其它页面时候没有带上该随机数则判断为非法,该方法已在多个大型项目中成功应用
hzBool(Boolean) 谢谢,我愁的就是有的是ServerVariables( "HTTP_REFERER ")能检测到的,有的不是,因为一些页面是redirect过去的(redirect是可以取到ServerVariables( "HTTP_REFERER ")的),一些是用js从客户端open的,不能取到
PerfectStar(第一个获得图灵奖的中国籍男子) 不失为好方法,但是库表是已经定的,我不能随便添加。谢谢。
PerfectStar(第一个获得图灵奖的中国籍男子) 不失为好方法,但是库表是已经定的,我不能随便添加。谢谢。
1 把页面地址和登录角色的关系写入数据库,比如某角色可以看那些页面
2 写一个basepage类,检查当前登录者所属角色是否有浏览当前页面的权限
3 在需要检查的页面的cs文件里继承该类
同意,我们现在做的项目就是采用这种办法来控制的
2 写一个basepage类,检查当前登录者所属角色是否有浏览当前页面的权限
3 在需要检查的页面的cs文件里继承该类
同意,我们现在做的项目就是采用这种办法来控制的
楼主说不希望出现直接输入地址进入的方式,那他是有这个页面的操作权限还是没有呢?
page_load里应该对这个session[ "userid "]的操作权限进行一下判断,如果有该页面的操作权限,我觉得直接输入url进入页面应该是不能被禁止的,当然前提是有session[ "userid "]
page_load里应该对这个session[ "userid "]的操作权限进行一下判断,如果有该页面的操作权限,我觉得直接输入url进入页面应该是不能被禁止的,当然前提是有session[ "userid "]
直接cookie嘛,如果考虑安全就加密下
利用cookie的身份认证,如果从cookie中读不到相应的数据,则跳转到登陆界面!
点连接和直接输入地址的区别似乎不大,怎么禁止?
using System;
using System.Web;
namespace BR
{
public class MyPageBase : System.Web.UI.Page
{
public MyPageBase()
{
}
protected override void OnInit(EventArgs e)
{
if((LoginUser)Session[ "LoginUser "] == null)
{
Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/Login.aspx ", true);
}
base.OnInit(e);
}
}
}
在每一页都继承这个类。
public partial class WebForm1 : BR.MyPageBase
using System.Web;
namespace BR
{
public class MyPageBase : System.Web.UI.Page
{
public MyPageBase()
{
}
protected override void OnInit(EventArgs e)
{
if((LoginUser)Session[ "LoginUser "] == null)
{
Response.Redirect(HttpContext.Current.Request.ApplicationPath + "/Login.aspx ", true);
}
base.OnInit(e);
}
}
}
在每一页都继承这个类。
public partial class WebForm1 : BR.MyPageBase
谢谢各位,结贴了