ASP.NET 身份验证机制

ASP.NET提供了3种认证方式: windows身份验证、Forms验证和Passport验证。
windows身份验证: IIS根据应用程序的设置执行身份验证。要使用这种验证方式,在IIS中必须禁用匿名访问。
Forms验证:用Cookie来保存用户凭证,并将 未经身份验证的用户重定向到自定义的登录页。

Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务。


1.web.config配置文件

a.配置程序不允许匿名用户访问网站,否则跳转到登录页面。path='/'表示根目录即限制整个站点不允许匿名用户,也可以只限制某一个文件夹下面的页面不允许匿用户访问。<deny users="?"> 限制匿名用户,"?"表示匿名用户,“*”表示所有用户。

<!--配置Forms身份认证 不允许匿名用户访问,否则跳转到/Manager/login.aspx 页面 -->
      <authentication mode="Forms">
        <forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
      </authentication>
      <authorization>
        <deny users="?"/>
      </authorization>

b.当用户打开程序时,会自动转到Manager/login.aspx页面,但是这个页面引用的jquery-1.7.1.min.js文件是不可用的。因为,限制了所有的匿名用户只能访问Login.aspx页面,只有当注册票据之后其它的页面或文件才能正常访问。所以当匿名用户需要有权限访问jquery-1.7.1.min.js文件,就需要设置某个文件或者文件的访问权限为所有用户。

  <!--允许所有用户访问Script文件夹-->
    <location path="Script">
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
    </location>


c.所以,根据上面可知,验证码图片是不能显示的。我们把生成验证码文件,配置为允许匿名用户访问,如下代码:

<!--允许所有用户访问Code/ValidateCode.ashx文件,这个是用来生成验证码图片-->
  <location path="Code/ValidateCode.ashx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>


这里用到的完整代码如下:


  <!--允许所有用户访问Script文件夹-->
    <location path="Script">
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
    </location>
  
  <!--允许所有用户访问Code/ValidateCode.ashx文件,这个是用来生成验证码图片-->
  <location path="Code/ValidateCode.ashx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  
    <system.web>
      <customErrors mode="On" defaultRedirect="../error.aspx"/>


      <!--配置Forms身份认证 不允许匿名用户访问,否则跳转到/Manager/login.aspx 页面 -->
      <authentication mode="Forms">
        <forms name="myTeacher" loginUrl="~/Manager/login.aspx" protection="All" path="/" timeout="60"></forms>
      </authentication>
      <authorization>
        <deny users="?"/>
      </authorization>


说明:这里的思路是先禁止所有的匿名用户访问整个站点,然后在释放某个文件夹或文件允许匿名用户访问,从而达到我们的需求。

   所以,我们也可以用不同的思路来进行限制,比如:整个站点配置为允许任何人访问,在配置具体的文件夹和文件不允许匿名用户方面,从而达到我们的需求。其他的场景大同小异,总之,怎样简单便怎么使用!


2.登录注册票据

  当通过登录页面登录提交并登录成功后,注册票据。这时,注册票据之后,相当于当前用户的身份已经不是匿名用户,没有了访问权限的限制。FormsAuthentication的命名空间是:System.Web.Security; 


1  FormsAuthentication.RedirectFromLoginPage(UserID, false);    //页面注册 关键 UsersID表示登录ID
3.撕毁票据(退出系统)


1 FormsAuthentication.SignOut();     //撕毁票据 退出登录


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值