现在,我让公司的所有员工使用公司ID,用户名和密码登录外部网站。我们正在尝试将其集成到Intranet门户中,该门户网站应提供对此网站的无缝访问,而无需用户输入这些凭据。
有没有办法以编程方式执行此操作(.NET C#)?与screenscraping非常相似,我可以模拟相应的POST操作,然后将用户重定向到登录页面吗?
感谢任何帮助。
感谢。
答案 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)
解决方案。