技术开发 频道

ASP.NET安全问题:ASP.NET安全架构

  下面我们具体看看每个安全的过程:
       
  身份验证
       
  身份验证是揭示用户标识(注:标识的概念我们后面马上就讲的,简言之,用户的ID 和 名称)并判断标识真实性的过程。很好理解,举个例子(大家注意例子中的一些术语):我们要取参加一个会议,我们就会取登记提供我们的一些证件即标识(表明我们的身份),一旦标识被确认,我们就会得到会议通行证,我们就可以带着通行证参加会议。

  而且会议中的每个人都可以通过我们的通行证了解我们的一些信息,如我们的名字,公司。身份验证就是:一旦标识被确定,我们就会得到一个可以识别我们的令牌,所以,再一个特定的区域内,不管我们在哪里,我们的标识都可以被识别。
 
  在ASP.NET中,有4中身份验证的模式:
  ·Widows身份验证(Windows Authentication)
  ·Forms身份验证(Form Authentication)
  ·Passpot身份验证(Passport Authentication)
  ·自定义身份验证

  对于每一种身份验证,用户都需要在登录的时候提供凭证,一旦标识被核实,用户就会获得一个身份验证令牌,在Forms验证中,整个令牌就是FormsAuthenticationTicket,整个令牌就放在 cookie中,每次请求资源的时候,令牌就会提供用户的标识信息。

  授权
       
  我们接着拿之前的那个会议的例子来看,授权就是表明我们可以做什么。进入会议厅以后,发现有很多不同的会议,专家级的,普通级的,不同人参加不同级别的会议。而且有些人可以参观整个会议厅,但是有些人只能在展览厅参观。这就是权限的不同而导致的。

  所以,授权就是:以我们的标识信息为参考,批准或者拒绝访问我们请求的资源。还有一点要注意的是:我们一般是常用的是基于角色的授权,就是把用户分为一组一组,然后给每组不同的角色。
 
  假冒
       
  假冒是在其他用户标识的上下文中执行代码的过程。在默认情况下,所有的ASP.NET代码都是在Domain/ASPNET用户账户下执行的,要利用其他的标识执行代码,假冒其他的标识,我们应该利用.NET安全架构中的内置的假冒的功能。它允许我们指定执行代码的用户账户,比如不同于Domain/ASPNET的预定用户账户。我们既可以利用ASP.NET中身份验证功能来验证用户,也可以利用标准的Windows身份验证来验证用户。

0
相关文章