首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ASP.NET和iframes跨域认证用户?

如何使用ASP.NET和iframes跨域认证用户?
EN

Stack Overflow用户
提问于 2009-06-01 11:23:31
回答 3查看 5.3K关注 0票数 4

我正在为一个客户做一个ASP.NET网站,谁想让他们的报告页面通过IFRAME在其他“经销商”网站上可用。经销商网站以不同的品牌提供相同的服务。我需要避免,在我能做到的地方,要求他们在他们的any服务器上实现任何代码来实现这一点-因此使用iframe。

用户登录经销商网站,加载包含iframe的页面,然后在主站点加载报告。作为参数,我们将发送经销商id和他们的用户名。

我们可以使用SSL服务器证书,但不能使用任何联合登录(如OpenId) --这是客户端的业务选择。

问题是,主站点如何验证报表页面确实是由从经销商加载页面的用户请求的?换句话说,如何跨域对用户进行身份验证,而不需要经销商实现代码。

如果有任何想法,我们将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-03 14:44:19

如果不在经销商网站上实现任何代码,我看不到任何令人满意的方法。

相反,我会要求他们从经销商well服务器向主well服务器发送HTTPS请求,传递唯一的密钥来标识自己以及登录用户的用户名。

在主站点上验证后,此密钥将作为经销商的身份验证,并由分机作为其登录用户的身份验证。

此请求的响应将包含一个html片段字符串,经销商可以将其插入到任何页面中。

此片段将包含iframe,而iframe将使用用户的用户名直接从主站点加载登录用户的报告。此报告内容将包含对特定于经销商的样式表的引用。

使用这种方法,我会说浏览器中不需要HTTPS,因为经销商和他们的用户都是经过身份验证的,如果该过程通过HTTPS发生,我们可以假设没有窃听者。

在密钥或用户密码被泄露的情况下,来自浏览器的HTTPS无论如何都不会有什么不同。

票数 2
EN

Stack Overflow用户

发布于 2009-06-01 12:35:17

您的登录表单可以使用一些javascript将登录表单发布到您需要登录的每个域的隐藏iframe (出于跨域安全考虑,您不能使用XMLHTTPRequest )。

确保将iframe重定向回原始域,否则由于跨域安全性的原因,您将无法从iframe中获取登录状态。

IE支持的最后一个技巧是翻转邪恶的比特并添加

代码语言:javascript
复制
P3P: CP="CAO PSA OUR"

添加到您的HTTP响应头。它告诉浏览器“我不会做任何坏事,老实说”。

http://support.microsoft.com/kb/323752

http://www.w3.org/P3P/

票数 4
EN

Stack Overflow用户

发布于 2009-06-01 12:17:46

我可能遗漏了一些东西,但是如果客户端是根据您的服务器进行身份验证的,那么如果您通过iframe查看它,它仍然是经过身份验证的。

例如,在您的服务器上创建一个HTML页面,其中包含gmail的iframe。只要你在浏览器中通过了gmail认证,你就会在那个页面上看到你的收件箱……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/934422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档