python web api authorization_Web APi之认证(Authentication)及授权(Authorization)【一】(十二)...

本文介绍了Web API中认证和授权的基本概念,包括Identity、Principal的实现,以及AuthenticationFilter的工作原理。重点讲解了认证流程,如AuthenticateAsync和ChallengeAsync方法的调用,并对比了Basic基础认证和Digest摘要认证。文章预告将通过实战演示不同认证方式的实现。
摘要由CSDN通过智能技术生成

前言

无论是ASP.NET MVC还是Web API框架,在从请求到响应这一过程中对于请求信息的认证以及认证成功过后对于访问页面的授权是极其重要的,用两节来重点来讲述这二者,这一节首先讲述一下关于这二者的一些基本信息,下一节将通过实战以及不同的实现方式来加深对这二者深刻的认识,希望此文对你有所收获。

Identity

Identity代表认证用户的身份,下面我们来看看此接口的定义

public interface IIdentity

{

// Properties

string AuthenticationType { get; }

bool IsAuthenticated { get; }

string Name {get; }

}

该接口定义了三个只读属性, AuthenticationType 代表认证身份所使用的类型, IsAuthenticated 代表是否已经通过认证, Name 代表身份的名称。对于AuthenticationType认证身份类型,不同的认证身份类型对应不同的Identity,若采用Windows集成认证,则其Identity为WindowsIdentity,反之对于Form表单认证,则其Identity为FormsIdentity,除却这二者之外,我们还能利用GenericIdentity对象来表示一般意义的Identity。

WindowsIdentity

在WindowIdentity对象中的属性Groups返回Windows账号所在的用户组,而属性IsGuest则用于判断此账号是否位于Guest用户组中,最后还有一个IsSystem属性很显然表示该账号是否是一个系统账号。在对于匿名登录中,该对象有一个IsAnonymous来表示该账号是否是一个匿名账号。并且其方法中有一个GetAnonymous方法来返回一个匿名对象的WindowsIdentity对象,但是此WindowsIdentity仅仅只是一个空对象,无法确定对应的Windows账号。

FormsIdentity

我们来看看此对象的定义

public class FormsIdentity : ClaimsIdentity

{

public FormsIdentity(FormsAuthenticationTicket ticket);

protected FormsIdentity(FormsIdentity identity);

public override string AuthenticationType { get; }

public override IEnumerable Claims { get; }

public override bool IsAuthenticated { get; }

public override string Name { get; }

public FormsAuthenticationTicket Ticket { get; }

public override ClaimsIdentity Clone();

}

一个FormsIdentity对象是通过加密过的认证票据(Authentication Ticket)或者是安全令牌(Security Token)来创建,被加密的内容或者是Cookie或者是请求的URl,下述就是通过FormsIdentity来对Cookie进行加密。

var ticket = new FormsAuthenticationTicket(1, "cookie", DateTime.Now, DateTime.Now.AddMinutes(20), true, "userData", FormsAuthentication.FormsCookiePath);var encriptDat

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值