云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_阿里云提升带宽_促销

小七 141 0

宽带测速器_网站_wd云存储

在本系列文章中,从这篇文章开始,您将基于ASP.NET核心2.0和反应。要解决身份管理功能,您需要将此堆栈与Auth0集成。在本系列的第一部分中,您将使用ASP.NETcore2.0开发应用程序的api。最后的代码可以在这个GitHub存储库中找到。"了解使用ASP.NET核心2.0和React"在推特上留言设置ASP.NET核心应用程序您将要实现的应用程序将允许用户浏览在线书店。遵循API优先开发方法,您将通过创建ASP.NET核心2.0 Web API。为此,您有两种选择:第一,可以从visualstudio创建应用程序;第二,可以从命令行创建应用程序。使用Visual Studio创建项目如果使用的是visualstudio,则可以通过选择ASP.NET核心Web App项目模板,如下图所示:如果没有visualstudio,可以在这里免费下载。在选择ASP.NET核心Web应用项目模板,您需要指定ASP.NET要生成的应用程序。在您的情况下,您将选择Web API应用程序类型,如下图所示:请确保不要选择任何类型的身份验证,因为您将使用Auth0集成应用程序。从命令行创建项目如果您喜欢使用命令行,可以通过键入以下命令来创建应用程序:dotnet新建webapi-n API-Auth0这将创建一个ASP.NETWeb API目录,其中包含您的项目,在当前目录中命名为API-Auth0。无论使用visualstudio还是使用visualstudio,都会得到相同的结果。也就是说,在遵循这些步骤之后,您将获得ASP.NET核心2 Web API应用程序。正在上创建Books控制器ASP.NET核心2.0现在您已经创建了项目,大数据技术学什么,可以开始重构它以提供所需的功能。你要做的第一件事就是移除值控制器.cs控制器目录下的文件。应用程序中不需要此控制器。删除后,可以创建BooksController.cs版文件,在同一目录中,使用以下代码:使用Microsoft.AspNetCore.Authorization;使用Microsoft.AspNetCore.Mvc;使用System.Collections.Generic;命名空间APIAuth0.Controllers{[路由("api/[控制器]")]公共类图书控制器:控制器{[HttpGet]公共IEnumerableGet(){无功电流用户=HttpContext.User;var resultBookList=新书[]{新书{Author="Ray Bradbury",企业云服务器,Title="华氏451",AgeRestriction=false},新书{Author="Gabriel García Márquez",Title="百年孤独",AgeRestriction=false},新书{Author="乔治·奥威尔",Title="1984",AgeRestriction=false},新书{Author="Anais-Nin",Title="金星三角洲",AgeRestriction=true}};返回resultBookList;}公共课课本{公共字符串作者{get;set;}公共字符串标题{get;set;}公共bool AgeRestriction{get;set;}}}}在这里,产业云,您定义了一个返回图书列表的webapi。为了简单起见,您将图书列表存储在一个数组中。然而,在现实世界中,这个列表应该存储在持久数据库中。Web API的URL将是/API/books,任何HTTP客户端都可以通过发出一个简单的HTTP get请求来获取图书列表:#在后台运行应用程序dotnet运行&#发出get请求卷曲-D-:5000/api/书籍当然,您不希望任何客户机在没有适当的身份验证过程的情况下访问您的书店。您希望只有经过授权的客户端才能获得应用程序管理的图书列表。这就是Auth0可以帮助您的地方:它提供了一组将安全性集成到应用程序中的身份解决方案。整合ASP.NET使用Auth0的Core 2.0第一步,您需要一个Auth0帐户。如果还没有,你可以在这里注册一个免费帐户。在注册过程中,您需要提供租户域名、服务托管区域以及有关您公司和您自己的其他一些详细信息。域名非常重要,因为它将确定Auth0向授权客户端公开的API端点的根部分。一旦你提供了域名,你就不能再更改它了。但是,您可以根据需要创建任意多个租户。注册阶段完成后,就可以访问Auth0仪表板。创建Auth0 API当您正在创建一个允许用户浏览在线书店的后端API时,您需要创建一个auth0api来表示您的后端。为此,请转到Auth0仪表板的API部分,然后单击createapi按钮。之后,仪表板将询问您三件事:你的API的名字,你可以把它设置成网上书店;API的标识符,可以将其设置为https://onlinebookstore.mycompany.com;而签名算法,可以在这个字段选择RS256;完成此表单后,可以单击"创建"按钮。创建Auth0应用程序您的目标是通过只授权受信任的客户端来控制API访问。为此,您还需要Auth0上的应用程序配置。通常,您需要创建一个新的应用程序来表示您的前端应用程序。前端应用程序的类型将帮助您决定要创建的Auth0应用程序的类型。但是,在第一部分中,您还没有创建前端,您可以使用为auth0api自动创建的应用程序。如果选择Online Bookstore作为API的名称,那么您将在Auth0仪表板的application部分看到一个名为Online Bookstore(测试应用程序)的应用程序。单击此应用程序并转到"设置"选项卡。在此选项卡中,好评返现,您将看到您需要的三个属性:您的Auth0域的租户;客户端ID密钥;以及客户端密钥;您将很快使用这些值。正在上配置Auth0ASP.NET核心应用程序创建auth0api之后,必须修改应用程序,以便将身份管理移交给Auth0。作为第一步,您需要在应用设置.json配置文件,如下所示:{"日志记录":{"IncludeScopes":错误,"调试":{"LogLevel":{"Default":"警告"}},"控制台":{"LogLevel":{"Default":"警告"}}},"Auth0":{"Authority":"","听众":""}}您必须用前面几节中定义的值来替换和。例如,如果您将租户域定义为https://dotnet2-react.auth0.com'将用来代替占位符。您将使用为auth0api的标识符定义的值(例如。https://onlinebookstore.mycompany.com).然后,您必须在启动.cs文件如下:使用Microsoft.AspNetCore.Authentication.jwt持有人;// ... 其他使用语句// ... 命名空间定义// ... 类定义// ... 等public void ConfigureServices(IServiceCollection服务){服务.AddAuthentication(选项=>{options.DefaultAuthenticateScheme= JwtBearerDefaults.AuthenticationScheme;options.DefaultChallengeScheme= JwtBearerDefaults.AuthenticationScheme;}).AddJwtBearer(选项=>{选项。权限=ConfigurationAuth0:权限"];选项。观众=ConfigurationAuth0:访问群体"];});服务.AddMvc();}// ... 等如您所见,您通过指定JWT承载方案并提供从应用设置.json配置文件。之后,您将需要向添加一个调用应用程序身份验证()在Configure()方法体中,如下所示:public void Configure(IApplicationBuilder应用程序,IHostingEnvironment env){如果(环境开发()){app.usedeveloperXception页面();}应用程序身份验证();应用程序UseMvc();}启用身份验证支持后,可以通过将Authorize属性添加到BooksController.cs版文件:[HttpGet,授权]公共IEnumerableGet(){无功电流用户=HttpContext.User;var resultBookList=新书[]{新书{Author="Ray Bradbury",Title="华氏451",AgeRestriction=false},新书{Author="Gabriel García Márquez",Title="百年孤独",AgeRestriction=false},新书{Author="乔治·奥威尔",Title="1984",AgeRestriction=false},新书{Author="Anais-Nin",Title="金星三角洲",AgeRestriction=true}};返回resultBookList;}现在,淘客返利app,如果您尝试访问/api/books端点,您将得到401http状态代码(这意味着您没有被授权)。你可以使用任何一个客户端,比如一个postcull浏览器来验证它。#在后台运行应用程序dotnet运行&#发出get请求卷曲-D-:5000/api/书籍最后一个命令将生成如下响应:#HTTP/1.1 401未经授权#日期:2018年1月24日星期三16:28:09 GMT#服务员:红隼#内容长度:0#WWW认证:承载获取访问令牌现在您已经用Auth0保护了端点,您将学习如何aut