asp.net-web-api2 - ASP.NET 5 (vNext)/Web API/OAuth/OpenID/Tokens/Cookies/我真正需要什么?

标签 asp.net-web-api2 token asp.net-core

我有一个想要迁移到 ASP.NET 5 的现有项目。

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

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

  • 通常我不应该碰那些当前工作正常的 2 个 DLL。
    现在我想用 2 个新组件替换 ASP.NET Web Forms 项目:
  • 一个带有angular2的前端SPA
  • 带有 ASP.NET 5 (vNext) 的 Web API 后端

  • 我一直在使用 VS2015 中可用的模板,我也一直在阅读有关身份验证的所有内容,我必须说,我现在对我真正需要什么变得更加困惑...... :(

    我的后端 API 中是否需要 MVC?所有的例子都是用 ASP.NET MVC 完成的,但是如果我有一个完整的 SPA 前端,难道我只需要一个简单的 RESTful 服务吗?

    我需要什么来进行身份验证?我需要 ASP.NET 身份吗? Identity 是旧成员(member)的新版本吗?它是否负责创建代币?我已经有一个包含所有用户和散列密码的生产数据库。 My Domain.dll 程序集还具有验证用户凭据的所有必要代码。

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

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

    谢谢!

    最佳答案

    我会说……这听起来像是完全重写。

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

    我的后端 API 中是否需要 MVC?

    ASP.NET 5我们真的没有 MVC 和 WebAPI 了。它们在概念上非常相似,并且已经合并。一切都与您返回的内容有关。如果您返回 IActionResult ,它将启动 Razor 和 ViewEngines。如果您返回一个对象,那么它将尝试基于 HTTP header (WebApi 所做的)序列化您的对象。

    难道我只需要一个简单的 RESTful 服务吗?

    如果你有一个完整的 Angular 前端 SPA 应用程序?是的。这就是你所需要的,整个 MVC 的事情不是强制性的。您只需要创建一个 Web api。微软有一个不错的tutorial right here关于如何去做。

    我需要什么来进行身份验证?

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

    我需要 ASP.NET 身份吗?

    不,但对于 ASP.NET 5/MVC6,它是目前唯一存在的,所以目前?是的,但是整个 ASP.NET 系统在系统中的每个位置都可以替换。身份不使用旧的成员(member)系统。它使用声明,这是一个完全不同的主题。

    Identity 将处理您对每个请求( token 等)进行身份验证所需的一切。好消息?它支持 Facebook、Google 和许多其他网站。

    更多信息在这里

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

    此管道在 Startup.cs 中配置并分两步分离。 ConfigureServices这是配置依赖注入(inject)的位置和Configure添加管道的实际元素的地方。想要替换默认记录器?配置服务。想要在管道中添加元素?配置。

    真的是这样!

    推荐阅读:

  • Migrating an ASP.NET MVC 5 app to ASP.NET 5
  • The State of Security in ASP.NET 5 and MVC 6: Claims & Authentication
  • The State of Security in ASP.NET 5 and MVC 6: OAuth 2.0, OpenID Connect and IdentityServer
  • 关于asp.net-web-api2 - ASP.NET 5 (vNext)/Web API/OAuth/OpenID/Tokens/Cookies/我真正需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632945/

    相关文章:

    Java 扫描器模式

    c# - 在 Angular 2 和 ASP.NET Core 中使用相对图像路径

    c# - 来自 URI 的 Web API 模型绑定(bind)

    c# - Web API 2 下载文件使用异步任务<IHttpActionResult>

    asp.net-web-api - 在身份验证过滤器中的 ChallengeAsync 方法上下文中设置 Result

    php - Composer.phar 安装问题

    PHP - 如何获得 token ?

    c# - Azure - WebAPI 无法连接到 Azure DB,错误 : The system cannot find the file specified [SqlException]

    iis-express - IIS Express + VS 2015 中的通配符主机名

    c# - VS 测试资源管理器未找到我的单元测试 (XUnit.Runner) ASP.NET 5