Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC应用程序和WebAPI子应用程序的身份验证_Asp.net Mvc_Authentication_Asp.net Web Api - Fatal编程技术网

Asp.net mvc MVC应用程序和WebAPI子应用程序的身份验证

Asp.net mvc MVC应用程序和WebAPI子应用程序的身份验证,asp.net-mvc,authentication,asp.net-web-api,Asp.net Mvc,Authentication,Asp.net Web Api,我正在设计一个web应用程序,我已经将该应用程序分为两个web项目,一个MVC项目和一个WebAPI项目。MVC项目部署到绑定到的虚拟主机。WebAPI项目作为MVC应用程序的子应用程序部署,并绑定到。这种拆分的原因是WebAPI站点可以打包为数据层的独立程序集,而MVC站点充当表示层 身份验证和授权在顶级MVC应用程序中按预期工作,但在WebAPI子应用程序中却没有。我希望子应用程序与其父应用程序共享相同的HttpContext。我弄错了吗 有没有办法将父应用程序和子应用程序耦合在一起,以便它

我正在设计一个web应用程序,我已经将该应用程序分为两个web项目,一个MVC项目和一个WebAPI项目。MVC项目部署到绑定到的虚拟主机。WebAPI项目作为MVC应用程序的子应用程序部署,并绑定到。这种拆分的原因是WebAPI站点可以打包为数据层的独立程序集,而MVC站点充当表示层

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


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

我认为两个应用程序之间不能共享HttpContext

由于两个应用程序在同一个域下,所以可以在它们之间共享cookie身份验证。下面是一个关于为两个应用程序共享cookie的示例


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

您使用的是什么形式的身份验证?OAuth、Windows、Forms?另外,您不应该将两个应用程序身份验证上下文绑定在一起,因为从技术上讲,这两个应用程序是两个独立的应用程序。将两个应用程序组合成一个应用程序并仅引用程序集是一个更好的解决方案。非常感谢。这个数据项目最初是作为一个WCF项目启动的,但随着WebAPI OData支持的增强,它演变成了一个WebAPI项目,所以我从来没有考虑过它。