ASP.NET Core 3 与 Angular 8,ASP.NET 核心身份、角色和基于令牌的身份验证



问题:
创建一个使用从 api 客户端传递的令牌保护的 WebApi。
某些 api 方法应仅对定义了特定角色的用户可用。
例如

场景如下所示:
Angular8 调用 WebApi 登录

httpClient.Post(new LogInRequest(userName, password));

WebAPI 登录用户并生成令牌

signInManager.PasswordSignInAsync(userName, password);
var token = GenerateToken(userName); // token should be generated internally
return token;

Angular8调用WebApi并在标头中包含令牌

httpClient.Post(header: "TOKEN", new CreateCompanyRequest(company));

现在,WebAPI 检查是否允许分配给令牌的用户执行此操作

[Authorize("Supervisor")] // only user with Supervisor role should be able to use this controller
public class CompanyController : Controller

上面的代码只是一个示例,我将如何看到它工作。到目前为止,我已经尝试阅读一些 JWT 持有者的解释,但这些文章中的大部分都来自旧版本的 asp.net。 如果您可以向我解释此身份验证应该如何工作,或者向我指出一些有关如何 asp.net 核心标识与 webapi 令牌身份验证相结合的文档

您可以参考以下链接,该链接向您介绍了在核心 Web API 中使用 asp.net 核心身份验证、JWT 令牌授权 asp.net 的完整示例:

https://fullstackmark.com/post/13/jwt-authentication-with-aspnet-core-2-web-api-angular-5-net-core-identity-and-facebook-login

您可以使用 3.0 包将其源代码调整为 asp.net 核心 3.0,它就可以工作了。

相关内容

  • 没有找到相关文章

最新更新