【问题标题】:ASP.NET Web API + ASP.NET MVC AuthenticationASP.NET Web API + ASP.NET MVC 身份验证
【发布时间】:2015-09-17 19:16:32
【问题描述】:

我对身份验证/授权有疑问。这是我的应用程序设置。 应用程序 1:使用浏览器提供的 ASP.NET MVC 应用程序。 应用 2:使用混合移动应用提供相同的功能,在客户端(应用)使用 ionic + angularjs,在服务器端使用 ASP.NET Web api。

现在,两个应用程序都有相同的用户群,都需要一个通用的身份验证/授权模块。

我浏览了互联网,发现了很多很好的文章,分别解释了每个应用程序的身份验证。我很清楚我需要使用基于令牌的身份验证和 OWIN 中间件。

但我不太确定如何为这两个应用程序实现通用身份验证模块。我计划为 ASP.NET MVC 应用程序和 ASP.NET web api(应用程序的后端部分)提供单一托管。我怎样才能拥有两者之间共享的通用身份验证控制器?

如果我将两者分开托管,我将为每个单独的 AccountController(从 MVC 的“控制器”派生,从 WebAPI 的“ApiController”派生)。但不确定,如何合并此控制器以在我的解决方案中使用通用身份验证模块

我是否在正确的方向上同时托管两者?或者我需要遵循的任何其他最佳实践?

谢谢

【问题讨论】:

  • 在这里查看我的答案:stackoverflow.com/questions/26309792/…
  • 我还想知道如何使来自 MVC 的基于 cookie 的身份验证与来自 Web API 的基于令牌的身份验证协同工作。

标签: asp.net asp.net-mvc asp.net-web-api asp.net-identity asp.net-membership


【解决方案1】:

制作一个具有 MVC + API 控制器的项目。

MVC 控制器将实现基于 cookie 的身份验证(它们从 cookie 获取身份验证票证)并将用于为您的 mvc 站点提供服务。

API 控制器将实现基于标头的身份验证(它们从标头获取身份验证票证)并将成为 Angular 应用程序的后端。

MVC 和 API 控制器都将访问一个获取票证的类,并根据您的需要实现身份验证/授权逻辑。

这样,您将能够将一个 Web 应用程序部署到一个为 MVC 站点和 Angular 应用程序提供服务的主机上。

【讨论】:

    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 2012-06-16
    • 2015-04-05
    • 2014-05-21
    • 1970-01-01
    • 2017-10-22
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多