假设ASP。NET里登陆的时候验证页面
http://www.xxx.com/admin/login.aspx
登陆成功后跳转到后台管理主页面
http://www.xxx.com/admin/index.aspx,跳转到这个页面以后就可以访问所有的后台页面了
但是!!:::如果我没登陆就直接用连接2的话应该要提示错误,请问大家这个禁止直接访问的代码怎么样实现比较好?比较正式。谢谢了
在线等待您的回复
http://www.xxx.com/admin/login.aspx
登陆成功后跳转到后台管理主页面
http://www.xxx.com/admin/index.aspx,跳转到这个页面以后就可以访问所有的后台页面了
但是!!:::如果我没登陆就直接用连接2的话应该要提示错误,请问大家这个禁止直接访问的代码怎么样实现比较好?比较正式。谢谢了
在线等待您的回复
解决方案 »
- 多线程的问题
- 关于用动软生成的三层(普通三层)调用带有反回值的存储过程?
- 关于获取系统当前时间的问题
- DataSet与SQL加锁
- 如何让WebBrowser获取单击事件?
- 异步委托中调用BeginInvoke把Messagebox显示出来时,直接按回车,对话框关不掉,因为焦点好像不在Messagebox的button上,怎么解决
- 挑战!!在.net中最快的数组类型转换问题!!!!
- 如何得到一个dataset的某个表的行子集并把它构建成另一个dataset对象??
- C#关于数组的内容读取问题
- 从今天开始,水晶报表将受到来自纺织服装界的强力挑战!我水晶报表很难实现工艺单这一类格式的打印!其格式内详,有兴趣的进来看看,发表
- 又是窗体传值啊,知道的高手们进来看下啊,困扰我好久了,进度就此打住了
- .Net如何设置Crastal Report中的一些设置
//功能 : 检查用户是否已经登陆,防止直接输入url达到某个页面//传入类型: 空
//传入参数: 空//返回类型; bool
//返回值 : true or false
////////////////////////////////////////////////////////////////////////
public bool IsLogin ()
{
HttpContext ctx= HttpContext.Current;
try
{
if ((ctx.Request.Cookies["username"] == null || ctx.Request.Cookies["username"].Value == "") &&
(ctx.Request.Cookies["userpassword"] == null || ctx.Request.Cookies["userpassword"].Value == "") &&
(ctx.Request.Cookies["power"] ==null || ctx.Request.Cookies["power"].Value == ""))
return false;
else
return true;
}
catch(Exception ex)
{
return false;
}//endcatch
}
{
登陆失败....
}
我以前都用COOKIE的啊
烦死了
再顺便问一下大家另外个问题:
防止SQL注入的代码呢,就是连接不能含有非法的字符形式
谢谢
能说的具体点么?
谢谢拉大哥
IHttpModule 接口
你的验证代码怎么写的?
如下:
CREATE PROCEDURE AdminLogin@AdminName varchar(50),
@AdminPassWord varchar(50),
@AdminID int output,
@AdminAccess varchar(50) outputAS select * from Admin where @AdminName=AdminName
if(@@RowCount<1)
begin--------------------------1
set @AdminID=0
set @AdminAccess='用户名不存在'
end-----------------------------1
else
begin----------------------2
select * from Admin where @AdminName=AdminName and @AdminPassWord=AdminPassWord
if(@@RowCount<1)
begin-------------------3
set @AdminID=0
set @AdminAccess='用户名或密码错误'
end--------------------3
else
begin------------------4
select @AdminID=AdminID from Admin where @AdminName=AdminName and @AdminPassWord=AdminPassWord and AdminAccess='1'
if(@@RowCount<1)
begin------------------5
set @AdminAccess='用户名密码错误或者您的权限已经被取消'
end---------------------5
else
begin------------------6
set @AdminAccess='Access'
end---------------------6
end---------------------4
end------------------------2
GO
{
//验证代码
............
}
直接把非法字符替换掉就可以了'过虑非法字符
ParaValue = replace(ParaValue,"'","")
ParaValue = replace(ParaValue,"select ","")
ParaValue = replace(ParaValue,"insert ","")
ParaValue = replace(ParaValue,"delete ","")
ParaValue = replace(ParaValue,"count(","")
ParaValue = replace(ParaValue,"drop table ","")
ParaValue = replace(ParaValue,"update ","")
ParaValue = replace(ParaValue,"truncate ","")
ParaValue = replace(ParaValue,"asc(","")
ParaValue = replace(ParaValue,"mid(","")
ParaValue = replace(ParaValue,"char(","")
ParaValue = replace(ParaValue,"xp_cmdshell","")
ParaValue = replace(ParaValue,"exec master","")
ParaValue = replace(ParaValue,"net localgroup administrators","")
ParaValue = replace(ParaValue," and ","")
ParaValue = replace(ParaValue,"net user","")
ParaValue = replace(ParaValue," or ","")