我有一个ASP.NET Web应用程序,它使用ASP.NET Identity在启动时使用UseCookieAuthentication登录。
登录网站工作正常
我还有一个用于收集数据的ASP.NET WebAPI站点。我想使用在登录网站上创建的相同cookie来保护WebAPI
机器密钥相同,UseCookieAuthentication使用相同的CookieName和CookieDomain设置。
我似乎无法找到关于如何在ASP.NET站点之间使用基于Cookie的身份验证的任何好文章。
欢迎任何链接或想法。
如果有任何示例在两个站点之间传递ClaimsIdentity会很好 我们只选择UseCookieAuthentication,因为它类似于FormsAuthentication,但如果我们能够找到方法,我们不反对使用声明身份验证。
通过添加
工作app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
答案 0 :(得分:1)
我建议使用ClaimsIdentity而不是尝试传递Cookie。这样你就可以注册"带有WebAPI应用程序的Web应用程序。
我通过描述假设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。