需要帮助HttpWebrequest

时间:2011-01-05 20:23:39

标签: asp.net httpwebrequest response.redirect

HI伙计我有同样的问题,我正在寻求解决它。这里有详细信息我有两个网站WebsiteA和WebSiteB(WebsiteB不在我的控制之下,对我来说是一种黑盒子。)。

两个网站都有单独的登录页面 我有用户名,我存放在数据库中的websiteB密码。 我想要一种常见的登录页面。如果用户登录到websiteA并且他想要访问websiteB,则他不必再次输入登录名和密码信息。 我无法触及websiteB的代码。这是alredy部署和运行。 在登录表单的websiteB中,他们有一个Userid文本框和密码文本框以及一个登录按钮。这个按钮不是提交按钮。它有一个click事件,它调用一个函数来验证用户。这不是一个简单的帖子。 WebsiteB有一个网页,它有不同的框架。登录成功后。页面不会转到它保留在同一页面上但加载不同帧的任何其他页面。 据我所知。我可以使用httpwebrequest类。但面对以下问题。

无法点击按钮。 Response.Redirect不起作用。 似乎WebsiteB没有在cookies中存储任何东西,因为cookie总是返回一个空字符串

如果有人能帮助我,我真的很高兴。 我如何使用response.Redirect。当我重定向时,它显示我相同的登录页面。

3 个答案:

答案 0 :(得分:0)

HttpWebRequest将在WebsiteA的服务器上执行。即使你对WebsiteB执行了正确的HttpWebRequest POST,你也无法在不立即重定向到WebsiteB的情况下将该会话cookie传递给用户的浏览器。

您可能需要调查其他单点登录技术 - 您所描述的方法无效。

答案 1 :(得分:0)

在不知道登录如何对网站B起作用的情况下,我无法肯定地说,但在某些时候,我确信有一篇包含登录信息的帖子。我对解决方案的最佳猜测是尝试模仿网站B在登录时所做的事情。使用firebug并观察发送的内容以及返回的内容。你必须模仿这种行为。

可能是这样的: POST凭据到站点B进行验证,返回验证结果。 如果验证良好,请使用验证结果中的令牌重定向到站点B.

同样,在不知道站点B的情况下,我不能说,但不管它做什么,它可能使用普通的http,因此你可以复制它。也就是说,站点B可能仅通过接受来自某些URL的登录来禁止您登录。<​​/ p>

至于使用HttpWebRequest,我想你会发现你最好只拥有一个你从网站A提交的隐藏表格。

答案 2 :(得分:0)

我发现了。我们可以创建一个XML字符串并将字符串转换为字节,然后使用HttpWebrequest的正常写入函数来编写XML。