【发布时间】:2017-04-25 00:30:30
【问题描述】:
我有点困惑,为什么最新的 ASP.NET Core Web API 模板中没有个人用户帐户身份验证选项。
是否仍然可以像 MVC 模板那样实现单个用户帐户,还是没有意义?
假设我正在创建一个独立的 Web API,该 API 将包含我的所有业务逻辑和数据层,用于访问具有 AspNet Identity 表的数据库。我计划使用 MVC 应用程序调用此 API。
我知道这样做的一种方法是创建一个带有个人用户帐户身份验证的 asp.net MVC 应用程序,并使用 controllers/api 文件夹在 MVC 应用程序中直接构建 API。但是,我不想这样做,因为我希望 API 成为自己的独立项目,可以托管在完全不同的服务器上并由多个应用程序访问,而不仅仅是 MVC 应用程序。
由于没有模板,有人可以指导我在这种情况下通常如何进行身份验证的正确方向吗?
【问题讨论】:
-
您可以复制相关的位,但 WebAPI 和 MVC 现在本质上是一个单一的 API。唯一的区别是您没有视图以及默认路由的配置方式。对于 WebAPI,您通常不需要单独的帐户,因为默认情况下它无法创建帐户(内置于 MVC 模板中)。您可能希望对 WebAPI 使用 OAuth 或 OpenID 身份验证,而不是使用用户名和密码进行身份验证。由于 ASP.NET Core 不再提供任何 OAuth Server 中间件,您必须使用 OpenIddict 或 IdentServer4 进行授权
-
所以个人帐户在 WebAPI 模板中毫无意义
-
@Tseng 感谢您的回答。所以我仍然不明白的是:假设我的 MVC 应用程序有一个登录表单。该登录表单应该向api发送某种带有用户名和密码的ajax请求以进行身份验证和授权吗?然后API响应并设置cookie或其他东西?我只是想确保我处于正确的心态和正确的道路上。
-
期待看到这个查询的更多发展。
-
@Tseng 您说 ASP.NET Core Identity 个人帐户模板在 ASP.NET Core WebAPI 模板中毫无意义,因为 OpenID 身份验证将用于 WebAPI,而不是使用用户名和密码进行身份验证,但是如何选择在后端使用 WebAPI 决定了前端客户端的用户体验。我有一些用户不想在任何现有的 OpenId 提供商处没有 OpenId 帐户,他们如何进行身份验证?他们应该能够使用用户名和密码进行注册,不是吗?
标签: asp.net asp.net-web-api asp.net-core asp.net-identity asp.net-core-webapi