ASP.NET 5 (vNext) / Web API / OAuth / OpenID / Tokens / Cookies / 我真正需要什么?
ASP.NET 5 (vNext) / Web API / OAuth / OpenID / Tokens / Cookies / What do I really need?
我有一个现有项目,希望迁移到 ASP.NET 5.
目前它是一个引用 2 个 DLL 的简单 ASP.NET Web 窗体项目:
- Domain.dll 包含所有业务逻辑
- Data.dll包含所有数据访问代码
通常情况下,我不必触及当前工作正常的那 2 个 DLL。
现在我想用 2 个新组件替换 ASP.NET Web Forms 项目:
- 带有angular2的前端SPA
- Web API 后端 ASP.NET 5 (vNext)
我一直在使用 VS2015 中可用的模板,我也一直在阅读所有关于身份验证的内容,我必须说,我现在对我真正需要的东西感到更加困惑......: (
我的后端是否需要 MVC API?所有示例都是使用 ASP.NET MVC 完成的,但是如果我有一个完全可用的 SPA 前端,难道我只需要一个简单的 RESTful 服务吗?
身份验证需要什么?我需要 ASP.NET 身份吗? Identity 是旧 Membership 的新版本吗?它是否负责令牌的创建?我已经有了一个包含所有用户和散列密码的生产数据库。我的 Domain.dll 程序集还包含验证用户凭据所需的所有代码。
如果我想允许 Google 或 Facebook 等其他登录服务,我需要什么?我使用 ASP.NET 4.5 和 ASP.NET 5 模板创建了一些 Web 应用程序,以了解事情是如何完成的,但这正是混淆变得更糟的地方。 ASP.NET 4.5 模板使用了 Owin 的东西(我不熟悉),而 ASP.NET 5 模板没有。
理想情况下,这就是我真正想要的:我想创建一个具有最少依赖性的 Web API 项目,我想避免使用会话和 cookie,并且我想能够使用 Google 和 Facebook 的服务进行登录。
谢谢!
我会说...听起来像是完全重写。
让我们回顾一下你的观点...
我的 back-end API 中需要 MVC 吗?
在 ASP.NET 5
中,我们真的 不再有 MVC 和 WebAPI。它们在概念上非常相似,并且已经合并。这完全取决于你 return。如果您 return 和 IActionResult
,它将启动 Razor 和 ViewEngine。如果您 return 一个 object,那么它将尝试基于 HTTP Headers(WebApi 所做的)序列化您的 object。
难道我只需要一个简单的 RESTful 服务吗?
如果您有 Angular 的完整 front-end SPA 应用程序?是的。这就是您所需要的,整个 MVC 并不是强制性的。您只需要创建一个网站 api。 Microsoft 有一个很好的 tutorial right here 如何做到这一点。
身份验证需要什么?
我强烈推荐 SSO。这减少了您自己 re-implement 身份验证的需要。如果你更多的是public应用,尽量支持Facebook/Twitter/Google。如果它是一个商业应用程序,Azure AD 可以完成这项工作,但在这一点上,它特定于您的客户所拥有的,所以......它可能不是最好的解决方案。
我需要ASP.NET身份吗?[=41=]
没有,但是对于 ASP.NET 5/MVC6,它是目前唯一存在的,所以目前是吗?是的,你这样做了,但是整个 ASP.NET 系统被设计成在系统的每个地方都可以更换。身份不使用旧的会员系统。它使用声明,这是一个完全不同的主题。
Identity 将处理您验证每个请求所需的一切(令牌等)。好消息?它支持 Facebook、Google 和许多其他网站。
更多信息在这里
基本上,ASP.NET 5
是一个巨大的管道,作为第一个 class 公民进行依赖注入。将元素添加到管道中可以使它们可供管道中的后期人员使用。
此管道在 Startup.cs
中配置,分为 2 个步骤。 ConfigureServices
是配置依赖注入的地方,Configure
是添加管道的实际元素的地方。想要替换默认记录器?配置服务。想在管道中添加一个元素?配置。
原来如此!
推荐阅读:
我有一个现有项目,希望迁移到 ASP.NET 5.
目前它是一个引用 2 个 DLL 的简单 ASP.NET Web 窗体项目:
- Domain.dll 包含所有业务逻辑
- Data.dll包含所有数据访问代码
通常情况下,我不必触及当前工作正常的那 2 个 DLL。 现在我想用 2 个新组件替换 ASP.NET Web Forms 项目:
- 带有angular2的前端SPA
- Web API 后端 ASP.NET 5 (vNext)
我一直在使用 VS2015 中可用的模板,我也一直在阅读所有关于身份验证的内容,我必须说,我现在对我真正需要的东西感到更加困惑......: (
我的后端是否需要 MVC API?所有示例都是使用 ASP.NET MVC 完成的,但是如果我有一个完全可用的 SPA 前端,难道我只需要一个简单的 RESTful 服务吗?
身份验证需要什么?我需要 ASP.NET 身份吗? Identity 是旧 Membership 的新版本吗?它是否负责令牌的创建?我已经有了一个包含所有用户和散列密码的生产数据库。我的 Domain.dll 程序集还包含验证用户凭据所需的所有代码。
如果我想允许 Google 或 Facebook 等其他登录服务,我需要什么?我使用 ASP.NET 4.5 和 ASP.NET 5 模板创建了一些 Web 应用程序,以了解事情是如何完成的,但这正是混淆变得更糟的地方。 ASP.NET 4.5 模板使用了 Owin 的东西(我不熟悉),而 ASP.NET 5 模板没有。
理想情况下,这就是我真正想要的:我想创建一个具有最少依赖性的 Web API 项目,我想避免使用会话和 cookie,并且我想能够使用 Google 和 Facebook 的服务进行登录。
谢谢!
我会说...听起来像是完全重写。
让我们回顾一下你的观点...
我的 back-end API 中需要 MVC 吗?
在 ASP.NET 5
中,我们真的 不再有 MVC 和 WebAPI。它们在概念上非常相似,并且已经合并。这完全取决于你 return。如果您 return 和 IActionResult
,它将启动 Razor 和 ViewEngine。如果您 return 一个 object,那么它将尝试基于 HTTP Headers(WebApi 所做的)序列化您的 object。
难道我只需要一个简单的 RESTful 服务吗?
如果您有 Angular 的完整 front-end SPA 应用程序?是的。这就是您所需要的,整个 MVC 并不是强制性的。您只需要创建一个网站 api。 Microsoft 有一个很好的 tutorial right here 如何做到这一点。
身份验证需要什么?
我强烈推荐 SSO。这减少了您自己 re-implement 身份验证的需要。如果你更多的是public应用,尽量支持Facebook/Twitter/Google。如果它是一个商业应用程序,Azure AD 可以完成这项工作,但在这一点上,它特定于您的客户所拥有的,所以......它可能不是最好的解决方案。
我需要ASP.NET身份吗?[=41=]
没有,但是对于 ASP.NET 5/MVC6,它是目前唯一存在的,所以目前是吗?是的,你这样做了,但是整个 ASP.NET 系统被设计成在系统的每个地方都可以更换。身份不使用旧的会员系统。它使用声明,这是一个完全不同的主题。
Identity 将处理您验证每个请求所需的一切(令牌等)。好消息?它支持 Facebook、Google 和许多其他网站。
更多信息在这里
基本上,ASP.NET 5
是一个巨大的管道,作为第一个 class 公民进行依赖注入。将元素添加到管道中可以使它们可供管道中的后期人员使用。
此管道在 Startup.cs
中配置,分为 2 个步骤。 ConfigureServices
是配置依赖注入的地方,Configure
是添加管道的实际元素的地方。想要替换默认记录器?配置服务。想在管道中添加一个元素?配置。
原来如此!