在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
第一部分 如何运用 Form 表单认证 一、 新建一个测试项目 <authentication mode="Forms"> <forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms> </authentication> <authorization><deny users="?"></deny></authorization> private void Btn_Login_Click(object sender, System.EventArgs e) { if(this.Txt_UserName.Text=="Admin" && this.Txt_Password.Text=="123456") { System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.Txt_UserName.Text,false); } } private void Btn_Login_Click(object sender, System.EventArgs e) { if(this.Txt_UserName.Text=="Admin" && this.Txt_Password.Text=="123456") { System.Web.Security.FormsAuthentication.SetAuthCookie(this.Txt_UserName.Text,false); Response.Redirect("Default.aspx"); } } 以上两种都可发放验证后的 Cookie ,即通过验证,区别: 方法 a) 指验证后返回请求页面,俗称“从哪来就打哪去”。比如:用户没登录前直接在 IE 地址栏输入 http://localhost/FormTest/UserInfo.aspx ,那么该用户将看到的是 Login.aspx?ReturnUrl=UserInfo.aspx ,输入用户名与密码登录成功后,系统将根据“ReturnUrl”的值,返回相应的页面 方法 b) 则是分两步走:通过验证后就直接发放 Cookie ,跳转页面将由程序员自行指定,此方法多用于 Default.aspx 使用框架结构的系统。
2、 退出代码: private void Btn_LogOut_Click(object sender, System.EventArgs e) { System.Web.Security.FormsAuthentication.SignOut(); } 四、 如何判断验证与否及获取验证后的用户信息 if(User.Identity.IsAuthenticated) 第二部分 Form 认证的实战运用 五、 Web.config 的作用范围
新建项目时, VS.Net 会在项目根目录建立一个内容固定的 Web.config。除了在项目根目录,你还可以在任一目录下建立 Web.config ,条件就是应用程序级别的节点只能在根目录的 Web.config 中出现。 关于 Web.config 设置的作用范围,记住以下两点:1、 Web.config 的设置将作用于所在目录的所有文件及其子目录下的所有东东(继承:子随父姓) 2、 子目录下的 Web.config 设置将覆盖由父目录继承下来的设置(覆盖:县官不如现管) 六、 学会拒绝与巧用允许
回到我们在第一回合新建的测试项目“FormTest” ,既然要进行验证,按国际惯例,就得有用户名与密码。那,这些用户是管理员自己在数据库建好呢,还是用户注册、管理员审核好呢。只要不是一般的笨蛋,都知道选择后者。你们还别说,我公司还真有个别项目是管理员连到数据库去建帐号的,属于比较特殊的笨蛋,咱们不学他也罢,还是老老实实添加两个页面吧——注册页面(Register.aspx)与审核页面(Auditing.aspx)。 问题终于就要浮出水面啦,当你做好 Register.aspx 时,想访问它的时候突然觉得不对劲,怎么又回到了登录页面?你仔细瞧瞧网址,是不是成了:Login.aspx?ReturnUrl=Register.aspx 。怎么办,用户就是因为没有帐号才去访问注册页面的呀?(这句纯属废话,有帐号谁还跑去注册。) 1、 新建一个目录 Public ,用于存放一些公用的文件,如万年历、脚本呀……2、 在“解决方案资源管理器”中右击点击目录 Public ,新增一个 Web.config 3、 把上述 Web.config 的内容统统删除,仅留以下即可: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <authorization><allow users="*"/></authorization> </system.web> </configuration> 终于切入正题了,不容易呀。根据“覆盖”原则,我们知道上述 Web.config 将替代根目录 Web.config 中的 <authorization> 节点设置,即: <allow users="*"/> 替换 <deny users="?"></deny> 注解:“allow”允许的意思;“*”表示所有用户;
|
请发表评论