详解.net core webapi 前后端开发分离后的配置和部署

首先我们需要明确一下几个概念:

  1. .NET Core WebAPI:一款轻量级的Web开发框架,可以用于构建RESTful风格的Web服务。

  2. 前后端分离:“前端”指的是用户界面部分,通常使用HTML/CSS/JavaScript等技术实现,“后端”指的是数据处理和服务提供部分,通常使用各种服务器端语言进行开发。

  3. 配置和部署:我们需要为我们的WebAPI配置相关信息,如连接字符串、文件路径等,并将WebAPI部署到我们的服务器上,以便用户可以访问它。

下面是完整攻略步骤:

配置

  1. 配置数据库连接字符串

在appsettings.json中添加以下配置:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyWebApi;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

其中,DefaultConnection是我们的连接字符串名称,MyWebApi是我们数据库名称,其他参数根据自己的情况进行修改。

  1. 配置跨域访问

在Startup.cs文件中添加以下代码:

public void ConfigureServices(IServiceCollection services)
{
     services.AddCors(options =>
     {
         options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials().Build());
     });
     services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseCors("CorsPolicy");
    app.UseMvc();
}

注意:如果您只想允许特定的域名访问,可以将AllowAnyOrigin替换为AllowOrigin并填写相应的域名。

部署

接下来我们来部署我们的WebAPI。

  1. 发布

在Visual Studio中,右键单击项目并选择“发布”。

选择“文件夹”并指定发布路径。然后单击“发布”按钮。

  1. 配置IIS

在服务器上安装IIS,并在默认网站下创建一个新的子网站。

在子网站的属性中,找到物理路径,并将其设置为发布路径中的文件夹。

在IIS中添加应用程序池,选择.NET Core CLR版本并将其与我们的WebAPI关联。

  1. 测试

在浏览器中输入我们的网站地址,如果看到“Hello World”字样,说明部署成功。

示例说明

以下是两个示例,可以帮助您更好地理解配置和部署过程。

示例1:在WebAPI项目中使用Swagger UI

在WebAPI项目中,右键单击“依赖项”并选择“管理NuGet程序包”。

搜索“Swashbuckle.AspNetCore”,并在浏览器中打开GitHub页面。

粘贴以下代码到Startup.cs文件中:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseMvc();
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
    });
}

重新启动WebAPI项目,然后在浏览器中访问“/swagger”,您将看到Swagger UI页面。

示例2:在WebAPI项目中使用JWT身份验证

在WebAPI项目中,右键单击“依赖项”并选择“管理NuGet程序包”。

搜索“Microsoft.AspNetCore.Authentication.JwtBearer”,并在浏览器中打开GitHub页面。

粘贴以下代码到Startup.cs文件中:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    }).AddJwtBearer(options =>
    {
        options.RequireHttpsMetadata = false;
        options.SaveToken = true;
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("Jwt:Key").Value)),
            ValidateIssuer = true,
            ValidIssuer = Configuration.GetSection("Jwt:Issuer").Value,
            ValidateAudience = true,
            ValidAudience = Configuration.GetSection("Jwt:Audience").Value,
            ClockSkew = TimeSpan.Zero
        };
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication();
    app.UseMvc();
}

在appsettings.json中添加以下配置:

{
  "Jwt": {
    "Key": "my_secret_key_12345",
    "Issuer": "my_issurer",
    "Audience": "my_audience"
  }
}

这里的Key、Issuer和Audience是您自己选择的参数,可以根据自己的情况进行修改。

然后,您可以在Controller中使用[Authorize]特性来限制需要身份验证的方法。例如:

[Authorize]
[HttpGet]
public IEnumerable<string> Get()
{
    return new string[] { "value1", "value2" };
}

以上就是“详解.NET Core WebAPI前后端开发分离后的配置和部署”的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解.net core webapi 前后端开发分离后的配置和部署 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • 阿里云:计算将成DT世界引擎

    阿里云发布了一篇题为“计算将成DT世界引擎”的博客,其主要内容包括以下几个方面: 什么是DT世界 DT,即“数字化转型”的英文首字母缩写,指的是将数字技术应用于企业内部各个业务环节,实现数字化升级和转型的过程,是数字化时代企业发展的必经之路。 什么是DT引擎 DT引擎是支撑DT世界建设的系统性技术,是各类数字技术在企业内部的应用平台,可以通过多个层次实现数字…

    云计算 2023年5月17日
    00
  • numpy中meshgrid和mgrid的区别和使用详解

    对于“numpy中meshgrid和mgrid的区别和使用详解”,我会详细说明如下: 一、meshgrid和mgrid定义与区别 numpy中的meshgrid和mgrid都是用于生成网格点坐标。 meshgrid是用两个一维数组生成一个二维数组,其中第一个一维数组为行,第二个一维数组为列。例如,arr1、arr2是两个一维数组,则使用meshgrid函数可…

    云计算 2023年5月18日
    00
  • 互联网大时代数据究竟是什么?有什么用?

    互联网大时代数据是什么? 随着互联网的普及和发展,许多公司和机构开始收集、存储和分析各种数据。互联网大时代数据指的是非常庞大而且多种多样的数据集合,这些数据涵盖了社交网络、在线广告、搜索引擎记录、在线交易、物联网、移动应用和其他数字渠道所产生的数据。这些数据集合可以包括用户行为数据、市场数据、销售数据等不同的类型数据。 互联网大时代数据有什么用? 互联网大时…

    云计算 2023年5月17日
    00
  • 广西首家!云计算企业梯度科技通过可信云认证

    近日,数字广西集团旗下唯一的云计算服务企业——广西梯度科技有限公司,自主研发的梯度智能云顺利通过可信云容器解决方案权威认证,并获得中国信息通信研究院、云计算开源产业联盟颁发的可信云认证证书,成为广西首家通过该认证的云计算企业。   云计算领域唯一权威认证,梯度智能云获认可 可信云认证由工信部主导发起,数据中心联盟组织、中国信息通信研究院(工信部电信研究院)进…

    云计算 2023年4月12日
    00
  • 云计算VS大数据 记与思

    云计算: 1、云计算->IT资源的拥有权和使用权的分离(资源归云计算中心所有,使用权归付费用户所有) 2、云平台的角色:聚合->平台->一种生态系统(如apple的app store、淘宝网等,平台演变成一种经济生态环境) 3、云计算和物联网类软件登记量带905和380件,同比增长200.66%和119.65,说明发展趋势很显著。但是(以北…

    云计算 2023年4月11日
    00
  • Python数据集库Vaex秒开100GB加数据

    首先我们需要了解一下什么是Vaex。 什么是Vaex? Vaex是一个用于(超)大数据集的Python库,它可以处理比内存大得多的数据集,并有效地支持快速、交互式地执行各种操作,如过滤、转换、计算、汇总、可视化等。同时,Vaex使用异步I/O和各种智能编译技术,从而可以在几秒钟内对高达数百GB甚至几TB的数据集进行操作了。 Vaex的安装 使用pip进行安装…

    云计算 2023年5月18日
    00
  • ajax实现用户名校验的传统和jquery的$.post方式(实例讲解)

    下面是关于“ajax实现用户名校验的传统和jquery的$.post方式(实例讲解)”的完整攻略,包含两个示例说明。 简介 在Web开发中,我们经常需要使用ajax来实现用户名校验等功能。在本攻略中,我们将介绍如何使用传统的ajax方式和jquery的$.post方式来实现用户名校验,并提供一些示例说明。 传统的ajax方式 在传统的ajax方式中,我们可以…

    云计算 2023年5月16日
    00
  • 云计算由哪几部方构成,云计算发展主要面临哪些挑战?

    云客户端,如iPhone、Firefox、Android等这类终端设备; 云应用,如GoogleApps、Salesforce、Facebook等应用服务提供商; 云平台,如MicrosoftAzure,GoogleAppEngine等大型平台服务提供商; 云基础设施,如GoGrid,AmazonEC2,SunGrid等基础设施供应商。 而其工作模式分为三种…

    云计算 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部