第二十六讲 ASP.NET身份验证(一)

主要内容
    1. Web.config概述
        ASP.NET的两种配置文件
        1. machine.config: 提供整个机器的默认配置,对该文件的修改将影响所有本机的站点。
            1. 它存储在,安装的.NET FROMAWORK版本的文件夹中,"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config"

            2. 它的配置作用域是,当前服务器下的所有的站点

            3. 此文件在没有特殊需要的情况下,不建议修改其内容

            4. machine.config 是 web.config 的一个基类,是一种继承关系。

        2. web.config:一般用于应用程序级别的配置文件,对其修改不影响其他站点,也可以用于站点下的子目录。
            1. 它存储在网站根目录下的
            2. web.config文件,如果在站点根目录下,那它的作用域只是当前的整个站点。

        3. 配置文件
            1. 基于XML,配置节元素区分大小写
            2. 可读可写(相比二进制的配置方便)
            3. 修改配置后,ASP.NET自动检测变化,不需要重启服务器或IIS

    2. ASP.NET身份验证
        安全控制
            1. 身份验证,验证用户是否拥有相应的身份
            2. 权限控制,控制各种身份的用户所拥有的权限

        身份验证
            1. Windows身份验证(适用于局域网)
            2. Passport身份验证(安全性最高的,但收费)
            3. Forms身份验证(常用)

            form身份验证的实现
            1. 在网站根目录下创建文件夹,如:Admin;在文件夹下创建页面文件.aspx。可以通过创建不同的文件夹,放置不同的页面进去,再配合web.config实现 权限的控件。

            2. web.config下的<authentication mode="Forms">标签,VS2010版本中默认是Forms验证方式。

                它的子标签<forms loginUrl="当要非正常访问后台文件时要跳转的页面" timeout="30">

            3. 授权
                1. allow , 允许
                2. deny , 拒绝
                3. 特殊符号:"*"代表所有用户,"?"代表匿名用户

            4. 授权(当验证通过后进行授权)
                它使用的标签是<authorization>
                <authorization>标签下就有两个子标签,allow , deny
                <deny user="?" />表示拒绝匿名用户登陆

                注意web.config的作用域,以上授权如果设置在根目录下,那么就表示整个站点都是拒绝匿名用户访问的。那么,如果我这个站点有个首页是不用用户登陆的呢?

                解决办法:就是将需要授权的页面进行归类,按上面所说的创建不同的文件夹,然后,再在这些子文件夹下,创建一个web.config文件,修改子文件夹下的web.config文件,那它的作用域就只是当前目录了,同是它也是继承根目录下的web.config 文件的。

            5. 编辑登陆方法,需要导入WEB安全命名空间,system.web.security;这个命名空间,是使用ASP.NET的Forms身份验证的。

                在这个命名空间下有个专门管理Forms身份验证的类:FormsAuthentication

                方法RedirectFormLoginPage(string str,bool bl),注意它的两个参数并不是用户名和密码两个字符串哦!!而是只有一个用户名和一个bool值。它有两个作用:
                1. 当登陆成功能后要跳转到的页面,先向客户端发送加密的Cookie,这个Cookie就是一个凭证。
                
                当用户访问后台页面时,此方法先到用户客户端查找加密的Cookie,如果有就跳转到后台页面,如果没有,就跳转到登陆页面,提示用户登陆。

                当用户输入正确的用户名和密码后,就自动打开用户刚刚试图登陆的页面(注意地址中页面地址尾部的ReturnUrl变量的值,就是记录的用户刚试图打开的页面地址)
                
                2. 然后跳转到ReturnUrl指定的页面,即登陆页面的上一个页面。

                3. 方法RedirectFormLoginPage(string str,bool bl),中的bool参数,是操作服务器发送的加密Cookie的。当为false时,Cookie是被保存在客户端的浏览器端,当浏览器被关闭Cookie就消失。

                那么,当bl为true时,cookie就被保存在客户端临时文件夹里。用户下次登陆时可使用这个记住的cookie登陆了。其实就是经常用的“记住密码或用户”那个选项。

                经过测试,发现,原来bl设置为true,就是等我们在后台代码中,未加任何提示就帮客户把Cookie保存在临时文件夹里了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值