ASP.NET 5(vNext)/ Web API/OAuth/OpenID /令牌/ Cookies /我真正需要什么?

Seb*_*Seb 7 token asp.net-web-api2 asp.net-core

我有一个现有的项目,我希望迁移到ASP.NET 5.

目前,它是一个简单的ASP.NET Web窗体项目,它引用了2个DLL:

  • 包含所有业务逻辑的Domain.dll
  • Data.dll包含所有数据访问代码

通常我不应该触摸那些目前工作正常的2个DLL.现在我想用2个新组件替换ASP.NET Web Forms项目:

  • 带角度2的前端SPA
  • ASP.NET 5的Web API后端(vNext)

我一直在玩VS2015中提供的模板,我也一直在阅读关于身份验证的所有内容,我必须说,我现在对于我真正需要的东西更加困惑...... :(

我的后端API需要MVC吗?所有的例子都是用ASP.NET MVC完成的,但是如果我有一个完全工作的SPA前端,我不需要一个简单的RESTful服务吗?

身份验证需要什么?我需要ASP.NET身份吗?Identity是旧会员的新版本吗?是否负责创建令牌?我已经拥有一个包含所有用户和散列密码的生产数据库.我的Domain.dll程序集还具有验证用户凭据所需的所有代码.

如果我想允许谷歌或Facebook等其他登录服务,我还需要什么?我使用ASP.NET 4.5和ASP.NET 5模板创建了一些Web应用程序,以查看事情是如何完成的,但这就是混乱变得更糟的地方.ASP.NET 4.5模板使用Owin的东西(我不熟悉),而ASP.NET 5模板则没有.

理想情况下,这就是我真正想要的:我想创建一个具有最少依赖性的Web API项目,我想避免使用会话和cookie,我希望能够使用Google和Facebook的服务登录

谢谢!

Max*_*ler 14

我会说......听起来像是完全重写.

让我们回顾一下你的观点......

我的后端API需要MVC吗?

ASP.NET 5我们没有真正有MVC和的WebAPI了.它们在概念上非常相似并且已经合并.这都归结于你的回归.如果你返回一个IActionResult,它将启动Razor和ViewEngines.如果您返回一个对象,那么它将尝试基于HTTP标头序列化您的对象(WebApi的作用).

我不需要简单的RESTful服务吗?

如果你有一个完整的前端SPA应用程序与Angular?是的.这就是你所需要的,而这整个MVC并不是强制性的.你只需要创建一个web api.微软在这里有一个很好的教程,如何做到这一点.

身份验证需要什么?

我强烈推荐一个SSO.这减轻了自己重新实现身份验证的需要.如果您更多的是公共应用程序,请尝试支持Facebook/Twitter/Google.如果它是一个业务应用程序,Azure AD可以完成这项工作,但此时,它特定于您的客户端所拥有的......它可能不是最佳解决方案.

我需要ASP.NET身份吗?

不,但是对于ASP.NET 5/MVC6来说,它是目前唯一存在的,所以暂时不存在?是的,但是整个ASP.NET系统可以在系统中的每个位置进行替换.身份不使用旧的成员资格系统.它使用索赔,这是一个完全不同的主题.

身份将负责验证每个请求(令牌等)所需的一切.好消息?它支持Facebook,谷歌和许多其他人.

更多信息在这里

基本上,这ASP.NET 5是一个巨大的管道,依赖注入作为一流的公民.向管道添加元素使它们可供管道中的后续人员使用.

此管道配置Startup.cs为2个步骤并分开.ConfigureServices这是配置依赖注入的位置以及Configure添加管道的实际元素的位置.想要更换默认记录器吗?ConfigureServices.想要在管道中添加元素?配置.

真的是这样的!

推荐阅读: