如何将Asp.net MVC Core与Asp.net Identity Core和WebAPi Core结合使用?

时间:2019-06-20 05:58:47

标签: asp.net-mvc asp.net-core asp.net-web-api asp.net-core-mvc

我将使用Dot Net Core创建一个Web应用程序。将来,我还将为同一应用程序创建移动应用程序。现在,我正在考虑该项目的体系结构。我想通过Asp.net Identity Core使用WEB API核心。另外,我将在MVC Core应用程序中使用WEB API。但是我想到的问题是,如何使用MVC和WEB API处理ASP.net身份?我需要同时包含在MVC中还是仅包含在WEB API中?

我努力思考但仍感到困惑。需要建议。

2 个答案:

答案 0 :(得分:2)

您可以使用基于令牌的身份验证。

在资源所有者流场景中,您的客户端应用(mvc应用程序/本机应用程序)将通过提供用户的凭据来使用您的Web api,Web api将在数据库中验证该凭据(使用ASP.NET Core Identity),如果用户名和密码正确,然后返回JWT身份验证令牌和用户详细信息。您的客户端应用可以验证令牌并登录用户:

ASP.NET Core 2.2 - JWT Authentication Tutorial with Example API Tutorial built with

Token Authentication in ASP.NET Core 2.0 - A Complete Guide

此外,当您要推出自己的成熟的OpenID Connect授权服务器时,IdentityServer4是一个不错的选择,该服务器可以处理诸如联合身份验证和单点登录之类的复杂用例。

答案 1 :(得分:1)

所以您的问题对于Stackoverflow来说可能是一个开放式的话题,并且您还没有真正展示出到目前为止所做的尝试。

我会尽力回答。首先,您只需要从项目模板开始。启动一个MVC项目,在其中您也可以轻松拥有API端点。为了清楚起见,我建议将这些内容分成两个项目-但是,如果这只是一个小型个人项目,那么将它们放在同一项目中可能会很好。微软在MVC方面拥有相当不错的资源:

Microsoft MVC walkthrough

对于身份部分。您需要某种授权才能使其正常工作。我建议您看一下IdentityServer4。其中提供了关于如何进行设置以及如何将其与Asp.NET Core Identity集成的极好的演练:

IdentityServer4