在Razor Pages应用程序中使用Web API JWT身份验证

时间:2019-02-21 13:36:37

标签: c# asp.net-core asp.net-core-webapi razor-pages

我有ASP.NET Core Web API应用程序,该应用程序使用JWT进行身份验证。

该方法是基于令牌的身份验证API的标准方法。有资源可以按用户名/密码检索令牌。其他所有资源都需要在授权标头中传递令牌。这可以按预期工作。

现在,我需要编写一些Web UI应用程序(Razor Pages),它将使用我的Web API来实现其业务逻辑。我想重用身份验证方法:Web UI用户必须通过Web API进行身份验证。 PageModel方法需要以某种方式选择令牌并将其传递给特定的Web API资源。

无需在Web UI中添加/删除/编辑用户-另一个Web应用程序(Angular)可以完成所有这些事情。

因此,顺序必须是这样的:

  • 打开Web UI起始页。如果用户未通过身份验证(没有令牌),请重定向到登录页面;
  • 登录页面。填写用户名/密码,从API检索令牌。重定向到起始页。
  • 任何其他操作:调用PageModel方法。选择一个令牌,并将其传递给Web API。

我查看了具有身份验证的Razor Pages应用程序模板,并且还阅读了文档中的"Identity"部分。我不知道如何将所有这些东西粘合在一起:docs样本主要基于实体框架(这是在我的Web API中完成的)。甚至customization部分仅描述了另一个用户存储。

我尝试注册自定义用户提供程序,角色提供程序和令牌提供程序,以了解其工作原理。看起来它想计算哈希,对其进行验证等-换句话说,就是执行API的工作。

如何实现上述认证方式? 有内置的技术吗?

0 个答案:

没有答案