ASP.NET身份验证和授权

目录

一、安全模式

二、ASP.NET支持的四种验证

三、认证和授权

四、Form的常用属性

五、对密码进行加密

六、对用户进行授权

七、设置用户访问权限

八、设置特定的文件和目录


一、安全模式

安全模式的必要性:

  • 构造特殊的链接地址,导致文件内的数据泄露
  • 数据库泄露
  • 安全防范的首要策略:所有的HTTP访问都要经过IIS,所以限制IIS的安全性是关键(只有管理员才能登录管理员的界面)

二、ASP.NET支持的四种验证

  • Windows: IIS验证,在内联网环境中非常有用
  • Passport: 微软集中式身份验证,一次登录便可访问所有成员站点,需要收费
  • Form: 窗体验证,验证帐号/密码,Web编程最佳最流行的验证方式
  • None: 表示ASP.N ET自己根本不执行身份验证,完全依赖IS身份验证

三、认证和授权

  • 认证是确定用户身份的过程。在用户通过了身份验证后,开发人员就可以确定该用户是否有权继续操作。如果没有进行身份验证,就不能进行实体的授权
  • 授权是确定已验证的用户是否有权访问应用程序中的某个部分、某个点或只访问应用程序提供的特定数据集

授权流程

四、Form的常用属性

form的常用属性
属性说明
name这是赋予 cookie的名字,该cookie用于在请求之间保存用户。该默认值是 .ASPXAUTH
loginUrl如果没有找到有效的验证 cookie,就指定请求重定向的URL
protection

指定要应用于验证cookie的保护级别,它有4个设置

All:应用程序使用数据有效性验证和加密机制来保护 cookie。这是默认设置。

None:不加密 cookie。

Encryption:加密 cookie,但不对它进行数据有效性验证。

Validation:进行数据有效性验证,但不加密 cookie

path指定应用程序所存储cookie的路径。在大多数情况下应用/,它是默认设置
timeout        指定cookie过期的时间(分钟),其默认值为30分钟
cookieless制定在进行验证和授权过程中,基于窗体的身份验证过程是否使用cookie
defaultUrl指定默认的URL
domain指定要与窗体身份验证一起发送的域名

from验证示列:

<authentication mode="Forms">
      <forms name="Users" loginUrl="Login.aspx" defaultUrl="Home.aspx">
        <credentials passwordFormat="Clear">
          <user name="LiaoHongSi" password="111111"/>
        </credentials>
      </forms>
</authentication>
protected void btn_Login_Click(object sender, EventArgs e)
{
            string name = this.txt_Name.Text;
            string pwd = this.txt_Pwd.Text;
            if (FormsAuthentication.Authenticate(name,pwd))
            {
                //验证成功后重定向到首次访问的页面
                FormsAuthentication.RedirectFromLoginPage(name,false);
            }
            else
            {
                Response.Write("<script>alert('登录失败!')</script>");
            }
}

五、对密码进行加密

  • Clear:密码存储为明文。用户的密码直接与这个值比较。
  • MD5:密码使用散列摘要进行存储。使用MD5算法进行散列,再与这个值进行相等比较。这个算法比SHA1的性能好。
  • SHA1:密码使用SHA1散列摘要来存储。在验证证书时,用户密码使用SHA1算法进行散列,再与这个值进行相等比较。这个算法的安全性最高

以MD5为列:

protected void btn_Login_Click(object sender, EventArgs e)
        {
            string name = this.txt_Name.Text;
            string pwd = this.txt_Pwd.Text;
            if (FormsAuthentication.Authenticate(name,pwd))
            {
                FormsAuthentication.RedirectFromLoginPage(name,false);
            }
            else
            {
                Response.Write("<script>alert('登录失败!')</script>");
            }
}
<authentication mode="Forms">
      <forms name="Users" loginUrl="Login.aspx" defaultUrl="Home2.aspx">
        <credentials passwordFormat="MD5">
          <user name="admin" password="202CB962AC59075B964B07152D234B70"/>
          <user name="test" password="E10ADC3949BA59ABBE56E057F20F883E"/>
          <user name="leo" password="E10ADC3949BA59ABBE56E057F20F883E"/>
        </credentials>
      </forms>
</authentication>

六、<authorization>对用户进行授权

  • <authorization>配置节用来对用户进行授权,在实现用户授权过程中,应该遵循以下两个应用规则: 一是位于较低目录级别的配置文件中包含的规则,优先于位于较高目录级别的规则二是对于给定URL的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止

  • <authorization>配置:
  1. deny阻止访问用户
  2. allow允许访问用户
  3. ?代表匿名用户
  4.  *代表任意用户
  5. 多个用户之间用“,”隔开

七、设置用户访问权限

八、<location>设置特定的文件和目录

 

  • 2
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论

打赏作者

爱敲代码的Harrison

从来无所求,所得皆惊喜。

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值