如果IUserService的实现不支持运行在WebAssembly,比如连接数据库,或者访问服务器文件等等,那么这种情况下,需要Server端提供接口,并且在Client端提供IUserService的接口调用实现 本文的目的就是通过增量生成器,完成Server端接口生成和Client端的接口调用 [WebController(Route ="user", Authorize = true)] [ApiInvokerGenerat...
步骤3: 增加ProductsController 类 usingBlazorApp1.Shared;usingMicrosoft.AspNetCore.Authorization;usingMicrosoft.AspNetCore.Mvc;namespaceBlazorApp1.Server.Controllers { [ApiController] [Route("[controller]")][Authorize]publicclassProductsController : ControllerBase { [HttpGet]publicIActionResult GetProducts()...
目标1: 实现一个未受保护的API === VS创建一个ASP.net core Host的Blazor wsam解决方案,其中 Server端项目即包含了未受保护的 WeatherForecast API接口. 稍微讲解一下 ASP.Net Core API的路由规则. 下面代码是模板自动生成的, Route 注解中的参数是 [controller], HttpGet 注解没带参数, 则该方法的url为 ht...
接下来,我向 API 项目添加新控制器。新控制器接受来自 Blazor 客户端的 RegistrationData 调用,如图 9 所示。注册控制器在服务器上运行,并且是后端 API 服务器的典型特征。区别在于,它现在运行在客户端上运行的相同验证规则。 图9:注册控制器 C# 复制 [Route("api/Registration")] [ApiController]...
新建Web Api项目 项目名称MyWebApi,用模板创建的WeatherForecastController足以。 Program.cs增加认证和授权的配置,Web Api项目采用Bearer认证。 //NuGet安装Microsoft.AspNetCore.Authentication.JwtBearer//NuGet安装IdentityServer4.AccessTokenValidationbuilder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)...
创建一个ASP.NET Core Web MVC项目,启动端口设置为:5000。 然后在项目的根目录下执行dotnet new isui --force命令,添加所需要的控制器和视图,执行完之后可以在右侧的解决方案中看到新添加的controll和view: 此时可以移除原有Controller->HomeControll.cs了,因为在Quickstart里已经有了。
将API 资源注册到 Identity Server,默认范围为{PROJECT NAME}API,其中{PROJECT NAME}占位符是创建应用时项目的名称。 配置JWT 持有者令牌中间件以验证 Identity Server 为应用颁发的令牌。 天气预报控制器 本部分涉及解决方案的Server应用。 在WeatherForecastController(Controllers/WeatherForecastController.cs) 中,[Autho...
将其命名为 SpecialsController.cs。 为类输入以下代码: C# 复制 using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using BlazingPizza.Data; namespace BlazingPizza.Controllers; [Route("specials")] [ApiController] public class SpecialsController : Controller { private...
[ApiController][Route("api/[controller]/[action]")]publicclassTaskController:ControllerBase Route定义了路由格式,上例中[controller]/[action]意为使用Controller和action的名称作为路由地址,这样写可以省去每个action上标记路由名字的麻烦。 Pages 存放页面文件的位置,因为我们的项目页面全部使用Blazor构建,所以用不到...
[ApiController][Route("api/[controller]/[action]")]publicclassAuthController:ControllerBase{//登录[HttpPost]publicUserDtoLogin(LoginDtodto){//模拟获得TokenvarjwtToken=GetToken(dto.UserName);returnnew(){Name=dto.UserName,Token=jwtToken};}//获得用户,当页面客户端页面刷新时调用以获得用户信息[HttpGet...