首页 文章

在两个应用程序间共享ASP.NET身份验

提问于
浏览
3

我有两个Web应用程序ASP.NET在同一个Web服务器IIS 7.5 / .NET 4.0上运行 . 第一个应用程序通过jquery对第二个应用程序进行异步调用,第二个应用程序充当Web服务后端(连接到数据库服务器) . 这两个应用程序将安装在Intranet上下文中,因此我想使用集成的“Windows身份验证” .

在两个Web.config中我都有:

<authentication mode="Windows" />

<authorization>
    <deny users="?" />
</authorization>

<identity impersonate="true" />

如果我打开浏览器并访问测试页面,则两个Web应用程序都可以:浏览器要求用户/密码对,IIS允许下载页面 . 但是,如果我访问第一个Web应用程序的测试页面,该测试页面会对第二个应用程序上安装的Web服务发出异步请求,则会返回401错误代码 . 因此,似乎两个应用程序之间的身份验证丢失了 .

我也试过machineKey但没什么......

任何的想法 ?

任何帮助表示赞赏,提前谢谢 .

亚历克斯

1 回答

  • 1

    您可能正在尝试向其他域发出异步请求,即isn't allowed .

    您可以通过创建对Web服务的"proxy"调用来解决此问题 . 您对本地asp.net应用程序进行异步调用,该应用程序代表您调用Web服务 . 这避免了上面链接中讨论的相同的原始策略限制 .

    另一个选择,因为你可以控制两端的应用程序,那就是查看JSONP . 我没有很多使用它的经验,但我已经看到它用于跨域进行异步调用 .

    祝好运!

相关问题