目标1: 实现一个未受保护的API === VS创建一个ASP.net core Host的Blazor wsam解决方案,其中 Server端项目即包含了未受保护的 WeatherForecast API接口. 稍微讲解一下 ASP.Net Core API的路由规则. 下面代码是模板自动生成的, Route 注解中的参数是 [controller], HttpGet 注解没带参数, 则该方法的url为 ht...
控制器( Controller )放在这里,站点的路由表是通过遍历项目中带有 ApiControllerAttribute (基类 ControllerAttribute )的类,然后寻找里面的方法实现,他和Blazor的路由表创建方法上有点相似。 [ApiController] [Route("api/[controller]/[action]")] publicclassTaskController:ControllerBase Route 定义了路由格式,上例中...
步骤3: 增加ProductsController 类 usingBlazorApp1.Shared;usingMicrosoft.AspNetCore.Authorization;usingMicrosoft.AspNetCore.Mvc;namespaceBlazorApp1.Server.Controllers { [ApiController] [Route("[controller]")][Authorize]publicclassProductsController : ControllerBase { [HttpGet]publicIActionResult GetProducts()...
下一步是在服务器上使用共享库和验证引擎。为此,我先向解决方案添加另一个ASP.NETCoreWeb应用程序项目。这次,我在图1所示的“新建ASP.NETCoreWeb应用程序”对话框中选择的是“API”,而不是“Blazor”。 新建API项目后,我就添加对共享项目的引用,就像在Blazor客户端应用程序中(见图5)一样。接下来,我向API项目添...
实现StudentController用来暴露API: [ApiController] [Route("[controller]")] public class StudentController : ControllerBase { private IStudentRepository _studentRepository; public StudentController(IStudentRepository studentRepository) { _studentRepository = studentRepository; ...
实现StudentController用来暴露API: [ApiController] [Route("[controller]")] publicclassStudentController:ControllerBase { privateIStudentRepository _studentRepository; publicStudentController(IStudentRepository studentRepository) { _studentRepository = studentRepository; ...
var user = _httpContextAccessor.HttpContext.User.Identity.Name; // other logic return Ok(); } } 注意,由于Blazor使用的是WebAssembly,因此需要通过API调用进行身份验证,而不是像常规的ASP.NET应用程序那样使用cookie。要使用API调用进行身份验证,请参考Microsoft的文档。
1usingMicrosoft.AspNetCore.Http;2usingMicrosoft.AspNetCore.Mvc;34namespaceWebApplication1.Controllers5{6[Route("api/[controller]/[action]")]7[ApiController]8publicclassValuesController : ControllerBase9{10publicstringIndex()11{12return"Hello Katty.";13}14[HttpGet("{x}")]15publicstringIndex1(stri...
[ApiController][Route("api/[controller]/[action]")]publicclassTaskController:ControllerBase Route定义了路由格式,上例中[controller]/[action]意为使用Controller和action的名称作为路由地址,这样写可以省去每个action上标记路由名字的麻烦。 Pages 存放页面文件的位置,因为我们的项目页面全部使用Blazor构建,所以用不到...
实现StudentController用来暴露API: [ApiController] [Route("[controller]")]publicclassStudentController:ControllerBase{privateIStudentRepository _studentRepository;publicStudentController(IStudentRepository studentRepository){ _studentRepository = studentRepository; } [HttpGet]publicListGet(){return_studentRepository...