以编程方式登录网站并将用户重定向到登录页面?

时间:2010-03-15 20:23:55

标签: c# asp.net authentication post screen-scraping

现在,我让公司的所有员工使用公司ID,用户名和密码登录外部网站。我们正在尝试将其集成到Intranet门户中,该门户网站应提供对此网站的无缝访问,而无需用户输入这些凭据。

有没有办法以编程方式执行此操作(.NET C#)?与screenscraping非常相似,我可以模拟相应的POST操作,然后将用户重定向到登录页面吗?

感谢任何帮助。

感谢。


3 个答案:

答案 0 :(得分:1)

您可以在页面中创建<form>镜像外部网站的登录表单,并使用相同的action=属性,然后填写并使用Javascript提交。

请注意,这需要您将用户的密码发送到浏览器,从不是一个好主意。

答案 1 :(得分:0)

您当然可以发布到外部网站,当您将用户重定向到那里时会出现棘手的问题,因为我认为会有Cookie限制。

您可以使用Javascript进行操作,使客户端浏览器使用正确的凭据直接发布到第三方,查看jQuery的Post命令。

假设外部网站以某种方式维护与cookie的会话,问题是,您的公司网站不能设置cookie,除了它自己的域,并且第三方网站不能读取cookie,除非它自己的域名,因此您无法将Cookie传输或传递给您的用户。

答案 2 :(得分:0)

此技术的名称为Single Sign-On。没有办法做到这一点,但新兴标准被称为SAML。这需要参与这两个部分(发起者和目标网站),因此它可能超出了您目前的职权范围。

与此处提到的其他两个答案一样,您可以将格式化的请求直接发布到登录脚本的操作中,但我可以从经验中告诉您,该解决方案将是脆弱的,也就是说,它会破坏第二个目标网站进行任何更改。

您最好的选择是与目标网站的管理员联系,询问他们是否有SSO (Single Sign On)解决方案。