我的目标是提供客户链接,当客户点击链接时,他/她应该使用他们登录的AD凭据自动登录到这个新站点(不受我们公司控制的外部网站)。 仅供参考,登录的凭证与此外部网站上的登录名相匹配,密码对所有人都是相同的。所以,我可以安全地在我的程序中硬编码密码。
现在我想的是编写一个C#程序,它将完成外部网站的身份验证过程并返回登录后收到的页面。
我的分析: -
1)当我第一次访问页面http://website2/default.aspx
时,它会返回一个包含用户名,密码和提交按钮的登录页面。
我还注意到它正在返回会话ID。 的 * ASP.NET_SessionId = i0j3d155mxxkuyr3fedp00yf * 即可。
2)稍后,当我输入用户名,密码并单击提交按钮时。 它正在创建一个查询字符串 的 用户= ADF&安培;密码= ADSF&安培; BUTTONNAME =登录+%21
我认为它正在使用HTTP Post调用。
你能帮我这个!!!!请尽可能为我提供一个我可以参考的代码并进行更改以实现这一点..... 非常感谢您的期待....任何帮助表示赞赏.....
答案 0 :(得分:0)
由于无法从AD检索密码,因此无法执行此操作。唯一可行的方法是,如果外部网站与您的网站之间存在信任关系,并且听起来情况并非如此(如果我错了,请纠正我!)。
您需要让用户手动输入身份验证并将该信息封送到外部站点,这实际上不仅仅是让用户直接向外部站点进行身份验证。
另一方面,很少能够安全地对程序中的密码进行硬编码。只是在说。此外,如果您在浏览器的地址栏中看到一个查询字符串,那么它不使用POST,而是使用GET。