采用ASP.NET Web API 提供的IAuthenticationFilter和IAuthorizationFilter接口分别实现验证和授权。其中用到IIdentity和IPrincipal接口。
IIdentity的具体类型用来标识通过验证的用户身份,由用户凭据(Credential)来创建一个指定名称的用户。
接口定义:
//定义标识对象的基本功能。
public interface IIdentity
{
// 获取所使用的身份验证的类型。
string AuthenticationType { get; }
// 获取一个值,该值指示是否验证了用户。
bool IsAuthenticated { get; }
// 获取当前用户的名称
string Name { get; }
}
不同的验证类型,对IIdentity有不同的实现方式。如:WindowsIdentity(Windows集成)、FormsIdentity(Forms)和GenericIdentity(一般用户)等。
如果自定义实现验证方式,可以采用GenericIdentity来标识用户身份,已通过验证的用户是一个指定名称的GenericIdentity。
GenericIdentity类型定义:
public class GenericIdentity : ClaimsIdentity
{
// 使用指定的 System.Security.Principal.GenericIdentity 对象初始化 System.Security.Principal.GenericIdentity
// 类的新实例。
prote