ASP.NET基于表单的验证实现网上安全访问,管理(1)

本文介绍了ASP.NET基于表单验证的使用场景与方法。当ASP.NET程序的Admin文件夹需限制访问时,基于表单的验证可替代ASP中设置Session的方式。文中还给出了文件目录结构,并分别介绍了根目录和Admin文件夹下web.config、login.aspx的配置,以及注销验证的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

什么时候用?

比如ASP.NET程序的一个Admin文件夹,是专门进行网上管理用的(比如后台数据维护),一般访问者不能访问里面的所有文件.只有通过验证的用户才能访问.按照以前的ASP的做法,是在用户通过Login页面时,设置Session(即Cookie)来判断用户是否通过验证,每个Admin文件夹里的页面文件都要设置验证语句,而且并不是很安全,这个时候,ASP.NET的4种验证方式之一:基于表单的验证就派上了用场.您做的仅是在Admin文件夹里面放置一个只有几行语句的Web.config文件.

怎样用?

这个问题您可以去看书籍上的介绍(Wrax出版的《ASP.NET高级编程》),不过,我这里有自己常用的方式,不妨看看.
文件目录为:
 +BIN
 +Admin
    - *.aspx
    - web.config //Admin文件夹下的web.config
 login.aspx
 web.config //根目录的web.config
1,根目录的web.config的配置

<configuration>
 
<system.web>
  
<authentication mode="Forms">
   
<forms name="mycookiename" loginUrl="login.aspx" protection="All" timeout="30">
   
</forms>
  
</authentication>
  
<authorization>
   
<allow users="*"/>
  
</authorization>
 
</system.web>
</configuration>


2,Admin文件夹下的web.config的配置

<configuration>
 
<system.web>
  
<authorization>
   
<deny users="?" />
  
</authorization>
 
</system.web>
</configuration>


3,login.aspx的配置
此页面就是一个验证登陆页面:

<asp:textbox id=textname runat=server/>帐号
<asp:textpassword id=textpassword runat=server>密码
<asp:checkbox id=mycheckbox runat=server/>是否记住密码,永久登陆
<asp:button runat=server onclick=btnloginclick text=登陆/>

 

处理事件1(当用户点击登陆按钮时候)

void btnloginclick(Object sender,EventArgs e)
{
 
if(用户通过验证)//这一点可以在bin目录放置自己的dll文件来验证用户,返回一个bool.
 {
 FormsAuthentication.RedirectFromLoginPage(UserName.Text, mycheckbox.Checked);
//这句用来存储Cookie来说明用户UserName.Text通过的验证,可以访问Admin文件夹了,另外,如果那个永久登陆的checkbox被checked了,则这个验证Cookie的失效日期可以长达50年(默认为浏览器时间).
 ResponseRedirect("Admin");//这时,就可以畅通无阻访问Admin文件夹了.
 }

}


处理事件2(当用户已经通过验证,就没有必要在访问login.aspx时候再次输入密码了)
这个由表单验证自动完成,相当于:

void Page_Load(Object sender,EventArgs e)
{
 
if(Context.User.Identity.IsAuthenticated)Response.Redirect("Admin");
}

4,注销验证:
用FormsAuthentication.SignOut();

其实,上述方案并不是很安全的解决方案.只是很实用,简单,又比较安全的验证解决方案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值