【问题标题】:How to UseCookieAuthentication OR ClaimsIdentity between ASP.NET Identity Owin site and ASP.NET WebAPI如何在 ASP.NET Identity Owin 站点和 ASP.NET WebAPI 之间使用 CookieAuthentication 或 ClaimsIdentity
【发布时间】:2015-07-26 09:26:20
【问题描述】:

我有一个 ASP.NET Web 应用程序,它使用 ASP.NET 身份在启动时使用 UseCookieAuthentication 登录。
登录网站工作正常。
我还有一个用于收集数据的 ASP.NET WebAPI 站点。我想使用在登录网站上创建的相同 cookie 来保护 WebAPI。
机器密钥相同,并且 UseCookieAuthentication 使用相同的 CookieName 和 CookieDomain 设置。

我似乎找不到任何关于如何在 ASP.NET 站点之间使用基于 Cookie 的身份验证的好文章。

欢迎任何链接或想法。

如果有任何示例在两个站点之间传递 ClaimsIdentity,那就太好了。
我们只选择 UseCookieAuthentication 是因为它与 FormsAuthentication 类似,但如果我们能找到方法,我们不反对使用 Claims Authentication。

通过添加来工作

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

【问题讨论】:

  • 您找到解决上述问题的方法了吗?

标签: asp.net asp.net-web-api asp.net-identity claims-based-identity


【解决方案1】:

我会推荐 ClaimsIdentity 而不是尝试传递 cookie。这样您就可以将 Web 应用程序“注册”到 WebAPI 应用程序。

我假设 Web 应用程序和 WebAPI 应用程序位于不同的域或服务器上至少不同的虚拟目录中。如果是这样,您可能还想看看 CORS。

以下是一些相关文章: http://www.jayway.com/2014/09/25/securing-asp-net-web-api-endpoints-using-owin-oauth-2-0-and-claims/

http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

如果 Web 应用程序是 WebAPI 代码的唯一使用者,并且它们可以托管在同一台服务器上,您可以考虑将 WebAPI 代码添加到 Web 应用程序解决方案中。这样您就不必担心 CORS。

【讨论】:

  • 这都是好文章,但基于声明的文章都是关于使用自定义 OAuthProvider 但我使用的是 ASP.NET 身份实体框架提供程序。添加 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);对我的创业公司似乎有所帮助。
  • 我更喜欢“Claims”方法而不是用户“CORS”,但我找不到任何关于如何使其工作的好文章。基本上我不知道在 WebAPI 站点启动时我必须做什么才能在上下文中获得声明。
猜你喜欢
  • 2017-03-07
  • 1970-01-01
  • 2016-04-20
  • 2019-11-02
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 2015-08-09
  • 2023-03-07
相关资源
最近更新 更多