C# 创建ASP.NET Core Web应用程序 — 身份验证与授权
因为ASP.NET Core并非仅关注一个操作系统,所以其身份验证和授权协议也必须能跨平台工作。OWIN 和OAuth是最流行的开源身份验证提供程序。OWIN代表Open Web Interface for .NET,它本身不是一个身份验证提供程序;但OWIN常与Katana关联在一起,而Katana是一个身份验证提供程序。OWIN是一个规范,详 细规定了Web服务器和Web应用程序应该如何分离。OWIN移除了 ASP.NET Core对IIS的依赖,使得通过Kestrel实现自托管成为现实。KatanaNuGet包中包含必要的库来实现多类身份验证,如Windows和Forms身份验证。
OAuth是Microsoft、Facebook、Twitter、Google等公司公开的一个接口,供Web应用程序用来进行身份验证。在移动设备或浏览器中运行的应用程序常提示客户端使用Facebook或Microsoft凭据来访问网站。在这些情况中,使用的协议就是OAuth。在ASP.NET Core Web应用程序中实现OAuth所需的类和方法包含在AspNet.Security.OAuth.Providers 名称空间中。
身份验证过程确认用户确实是真实用户。通常,当某人创建一个新账户时,这个账户会关联一个电子邮件地址和一个密码。应用程序将向用户提供的电子邮件地址发送一个确认邮件,用户单击这个邮件后,注册过程就完成了。之后,使用该电子邮件和密码来访问资源,就能验证确实是创建该账户的用户在访问资源。这个过程的另一个方面是授权。授权过程定义了用户能访问哪些功能和内容。这常称为声明(claim)。
在最简单的形式中,一些源代码检查是否存在对某个资源(如DealCard()方法)的声明,如果存在,发出请求的发牌方就能调用该方法。
policy.RequireClaim{"DealerID");
声明也可用名-值对形式表示,从而提供粒度更细的资源访问。
policy.RequireClaira("DealerID", "1", "2", "3", "4","S"));
这段代码表明,只有DealerlD等于1、2、3、4或5的发牌方才能调用DealCard()方法。
点击加载更多评论>>