ASP.NET(C#)转发页面有经验的进来帮忙

mzhqx 2009-04-24 01:49:26
要实现的功能如下:
客户端A(浏览器)、服务器B(中转服务器)、服务器C(目的服务器)
我现在是当服务器B接收到客户端A的请求后经过处理访问服务器C,再把读取访问服务器C返回的内容返回给客户端A。
现在主要的问题是,怎么让服务器C保存有客户端A的会话?比如客户端A访问服务器B,服务器B提交用户名和密码登陆服务器C把请求返回的内容返回给客户端A。怎么让服务器C能保存客户端A的登陆状态?先说明服务器C不受自己控制范围内,属于第三方提供的。也无协商修改的余地。也不要在客户端上做跳转。因为必须让客户端连接服务器B,中间要处理一些数据。。

这样的做法有点像代理服务器。。不过这个中转是要处理部分内容的。。

前5名指导思路的各给10分。我认为最好的回答的单独给50分,给出示例代码的另开帖送100分。
...全文
478 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangguosheng 2012-10-25
  • 打赏
  • 举报
回复
关注,学习
a2220046 2009-04-25
  • 打赏
  • 举报
回复
帮顶一下
happy664618843 2009-04-25
  • 打赏
  • 举报
回复
不知道啊 顶顶啊!
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
顶起来,谁给份伪造Cookie的示例代码?
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
cpp2017专家,能否给一份怎么伪造Cookie的示例代码。
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
cpp2017说的就是我的意思了。。其实最想实现的就是这样。。这样做应该是属于Cookie欺骗了。。但没做过,不知道怎么实现。。
cpp2017 2009-04-24
  • 打赏
  • 举报
回复
要将A通过B到C登录后,然后A直接访问C有点难度,

如果要实现可以
B登录到C后得到的Cook,然后B将cookie的里的内容伪造成C的地址写给A.
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
12楼没看我一楼的问题。一楼里已经说了:“先说明服务器C不受自己控制范围内,属于第三方提供的。也无协商修改的余地。”
chuangwan 2009-04-24
  • 打赏
  • 举报
回复
服务器C地址http://xxx.xxx.xx.xxx/1.php
服务器B地址http://localhost/1.aspx
客户端需要用户名和密码才能登陆服务器C的http://xxx.xxx.xx.xxx/1.php页面。现在我要实现的是当客户端访问我的服务器B时,服务器B把用户名和密码POST给服务器C,让客户端能连接上服务器C。。但是又不想通过URL重定向或脚本重定向等方法实现,因为会把用户名和密码暴露给客户端。cpp2017 专家能根据我这个要求给出一段示例代码吗?
你在服务器B把用户名和密码POST给服务器C时,同时传递一个参数,作为服务器C记录客户端A的登陆状态。可以给它加密。要调试时,对其进行解密操作
zhujinbo 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cpp2017 的回复:]
System.Net.HttpWebRequest req = ( System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://localhost");

System.Net.CookieContainer cook = null;
if(Session["cook"]!=null)
{
cook = (System.Net.CookieContainer)Session["cook"];
}else
{
cook = new System.Net.CookieContainer();

[/Quote]
感觉可以
ahwangyibo 2009-04-24
  • 打赏
  • 举报
回复
这个问题很想得到答案。顶一个先!
makun0624 2009-04-24
  • 打赏
  • 举报
回复
学习`支持`关注`
yingshao419 2009-04-24
  • 打赏
  • 举报
回复
不高意思,回错贴了。。
yingshao419 2009-04-24
  • 打赏
  • 举报
回复
这是标准的嵌入代码,改掉里面的路径或文件名即可:(virtual替换掉你的文件名,还有宽度和高度)

<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab',
'name','virtual','width','900','height','580','id','virtual','movie','virtual','quality','high','bgcolor','#F6F6F6','allowscriptaccess','always','wmode','Opaque' );
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="virtual" name="virtual" width="900" height="580" >
<param name="movie" value="virtual.swf" />

<param name="quality" value="high" />
<param name="wmode" value="Opaque" />
<param name="allowScriptAccess" value="always" />


<embed src="virtual.swf" quality="high"
width="900" height="580" name="virtual" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</noscript>


我即精通flash的AS,又精通.net,有问题可以问我..
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
服务器C地址http://xxx.xxx.xx.xxx/1.php
服务器B地址http://localhost/1.aspx
客户端需要用户名和密码才能登陆服务器C的http://xxx.xxx.xx.xxx/1.php页面。现在我要实现的是当客户端访问我的服务器B时,服务器B把用户名和密码POST给服务器C,让客户端能连接上服务器C。。但是又不想通过URL重定向或脚本重定向等方法实现,因为会把用户名和密码暴露给客户端。cpp2017 专家能根据我这个要求给出一段示例代码吗?
cpp2017 2009-04-24
  • 打赏
  • 举报
回复
System.Net.HttpWebRequest req = ( System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://localhost");

System.Net.CookieContainer cook = null;
if(Session["cook"]!=null)
{
cook = (System.Net.CookieContainer)Session["cook"];
}else
{
cook = new System.Net.CookieContainer();
Session["cook"] = cook;
}
req.CookieContainer = cook;

//然后登录,或其他操作.
mzhqx 2009-04-24
  • 打赏
  • 举报
回复
我目前是这样做的。好象没什么效果。到了客户端那边服务器C就不认客户端了。。
最好能做成这样。客户端连接服务B时,服务器B发送处理后的请求给服务器C,然后把请求返回的内容返回给客户端A之后。客户端可以直接连接服务器C操作。
因为我这里有一部分要处理的内容,服务器B请求服务器C时要把用户名和密码作为参数POST给服务器C。如果是重定向会把用户名和密码暴露给客户端。。
请教了!!
mengfeihui 2009-04-24
  • 打赏
  • 举报
回复
学习了,写日志的不知道可行不?自己没实践过。
liyunfengleo 2009-04-24
  • 打赏
  • 举报
回复
将B的处理直接转到C的页面
cpp2017 2009-04-24
  • 打赏
  • 举报
回复
服务器B 使用httpwebrequest去访问C(包括登录以及其他等功能)
通过httpwebrequest.CookieContainer来与C保持会话,而这上会话对象可保存在B的Session中 B的Session又是与A建立会话的.

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧