ASP.net 5 个 MVC 应用程序,带有 Web Api 应用程序 - 如何实现 oAuth
ASP.net 5 MVC app, with Web Api app - how to implement oAuth
我的问题是基于ASP.net5和认证。特别是,我正在尝试将 oAuth (2.0) 作为我的登录方法集成到我的解决方案中(如果这是他们注册的方式,用户可以使用 oAuth 登录,或者直接使用我自己的应用程序登录)。使用 ASP.net 5 网络应用程序的模板,我已经成功实现了上述目标,但这并不是我所需要的。
我有一个 ASP.net 5 MVC (app1) 用于我的前端 UI 和一个 ASP.net 5 web api 应用程序 (app2) 用于我的 REST服务,向 UI 提供数据。这种方法没什么新鲜的。
我希望我的 MVC 前端 (app1) 没有 Entity Framework 引用,也没有对登录管理器之类的引用(如果可能)。只是保持尽可能简单。我有一个登录屏幕,我想显示通过 facebook 或 google oAuth 帐户登录的选项。当你开始一个新的 ASP.net 5 网络应用程序时,我不想使用 MS 提供的开箱即用的好代码(嘿,为什么要让生活变得轻松!),我想使用我的网络 api 来做尽可能多地工作(我意识到 app1 中需要发生一些事情才能完成这项工作)。
我的目标是让我的 UI 尽可能简单,并将复杂的功能(业务逻辑、数据库访问和缓存等其他内容)卸载到 Web api 应用程序。
我在提取围绕 oAuth 的网络应用程序演示部分并将其移动到网络中时遇到困难 api,以便从 app1 使用。以前有没有人设法做到这一点?这是一个坏主意吗?有没有人在新 ASP.net 5 MVC 中使用过这种方法的示例。
提前感谢您的建议!
您可以使用 ASP.NET Identity 构建带有会员管理器的 WebAPI 应用程序。 ASP.NET 成员资格现在称为 ASP.NET 身份。
在 link 中,您将了解如何创建支持所有基本 ASP.NET 会员功能(log-in、注册等)的 WebAPI 应用程序。
一旦您使用(自定义)ASP.NET 会员存储设置了 WebAPI(一旦您 运行 应用程序,DB 为 auto-generated),您就设置了一个 RESTful 具有数据访问权限的 Web 层。您还可以自定义存储提供程序。参见此处:Overview of Custom Storage Providers for ASP.NET Identity.
ASP.NET 网站 (www.asp.net) 拥有足以从头开始创建您所说的所有内容的所有必要信息。对于与 Facebook 或其他人的集成,您可以查看此 link:External Authentication Services with ASP.NET Web API (C#)
我们(即 ASP.NET)建议您查看 Identity Server。 v4 现在构建在 .NET 核心之上。您在 facebook、twitter 等模板中看到的 OAuth 组件不适合用于 WebAPI,它们用于交互式、基于浏览器的登录,不适用于 javascript.
您可以让您的交互式应用程序正常处理注册,然后使用身份服务器颁发不记名令牌,将其指向您的身份数据库,并在您的 WebAPI 中验证它。
我们不建议您自己滚动。
我的问题是基于ASP.net5和认证。特别是,我正在尝试将 oAuth (2.0) 作为我的登录方法集成到我的解决方案中(如果这是他们注册的方式,用户可以使用 oAuth 登录,或者直接使用我自己的应用程序登录)。使用 ASP.net 5 网络应用程序的模板,我已经成功实现了上述目标,但这并不是我所需要的。
我有一个 ASP.net 5 MVC (app1) 用于我的前端 UI 和一个 ASP.net 5 web api 应用程序 (app2) 用于我的 REST服务,向 UI 提供数据。这种方法没什么新鲜的。
我希望我的 MVC 前端 (app1) 没有 Entity Framework 引用,也没有对登录管理器之类的引用(如果可能)。只是保持尽可能简单。我有一个登录屏幕,我想显示通过 facebook 或 google oAuth 帐户登录的选项。当你开始一个新的 ASP.net 5 网络应用程序时,我不想使用 MS 提供的开箱即用的好代码(嘿,为什么要让生活变得轻松!),我想使用我的网络 api 来做尽可能多地工作(我意识到 app1 中需要发生一些事情才能完成这项工作)。
我的目标是让我的 UI 尽可能简单,并将复杂的功能(业务逻辑、数据库访问和缓存等其他内容)卸载到 Web api 应用程序。
我在提取围绕 oAuth 的网络应用程序演示部分并将其移动到网络中时遇到困难 api,以便从 app1 使用。以前有没有人设法做到这一点?这是一个坏主意吗?有没有人在新 ASP.net 5 MVC 中使用过这种方法的示例。
提前感谢您的建议!
您可以使用 ASP.NET Identity 构建带有会员管理器的 WebAPI 应用程序。 ASP.NET 成员资格现在称为 ASP.NET 身份。
在 link 中,您将了解如何创建支持所有基本 ASP.NET 会员功能(log-in、注册等)的 WebAPI 应用程序。
一旦您使用(自定义)ASP.NET 会员存储设置了 WebAPI(一旦您 运行 应用程序,DB 为 auto-generated),您就设置了一个 RESTful 具有数据访问权限的 Web 层。您还可以自定义存储提供程序。参见此处:Overview of Custom Storage Providers for ASP.NET Identity.
ASP.NET 网站 (www.asp.net) 拥有足以从头开始创建您所说的所有内容的所有必要信息。对于与 Facebook 或其他人的集成,您可以查看此 link:External Authentication Services with ASP.NET Web API (C#)
我们(即 ASP.NET)建议您查看 Identity Server。 v4 现在构建在 .NET 核心之上。您在 facebook、twitter 等模板中看到的 OAuth 组件不适合用于 WebAPI,它们用于交互式、基于浏览器的登录,不适用于 javascript.
您可以让您的交互式应用程序正常处理注册,然后使用身份服务器颁发不记名令牌,将其指向您的身份数据库,并在您的 WebAPI 中验证它。
我们不建议您自己滚动。