MVC应用程序和Web API子应用程序的身份验证

时间:2013-10-24 20:02:19

标签: asp.net-mvc authentication asp.net-web-api

我正在设计一个Web应用程序,我将应用程序拆分为两个Web项目,一个MVC项目和一个WebAPI项目。 MVC项目部署到绑定到http://mysite.com/app的虚拟主机。 WebAPI项目作为MVC应用程序的子应用程序部署,并绑定到http://mysite.com/app/Data。这种拆分的原因是WebAPI站点可以打包为数据层的独立程序集,而MVC站点则作为表示层。

身份验证和授权在顶级MVC应用程序中按预期工作,但在WebAPI子应用程序中没有。我原本希望子应用程序与其父代共享相同的HttpContext。我错了吗?

有没有办法将父应用程序和子应用程序连接在一起,以便它们使用相同的授权上下文?

1 个答案:

答案 0 :(得分:3)

我不认为HttpContext可以在两个应用程序之间共享。

由于两个应用程序位于同一个域下,因此可以在它们之间共享cookie身份验证。以下是关于两个应用程序共享cookie的MSDN link

我觉得这里不需要使用两个应用程序。您可以将所有与web api相关的代码放在另一个程序集中,并使MVC应用程序引用它。