none
一个C#客户端程序,通过WebRequest类登录到HTTP服务器并且成功获取cookie,能否将cookie传给由这个程序启动的IE? RRS feed

  • 问题

  • 详细:

    一个C#的客户端程序,会让用户输入用户名和密码,然后连接到一个WEB服务器去下载数据。同时还需要提供直接调用IE浏览器去查看页面的功能,但是调用了IE之后,用户还得在IE上重新输入一次用户名和密码,比较麻烦。

    我希望能够直接将我这个客户端程序获取到的cookie传给IE,这样是否就可以实现调用IE打开页面的时候不再需要重复输入密码的功能呢?

    如果可以,请问如何将已经获得的cookie传给IE?


    da jia hao!

    2013年1月24日 6:56

答案

  • 问题:

    1、如果我不能修改服务器呢?就是说服务器是别人的,我只有用户名和密码,我无法通过加密方式传递,因为服务器那边不懂我的加密方式,我也改不了;

    2、我不知道你们用不用QQ、旺旺,这些软件都有从客户端打开网页并且自动登录的功能,而且绝对不是在url上传递用户名和密码实现的。


    da jia hao!

    你可以用 Fiddler 抓包来分析下,根据我的观察,当本地Cookie失效后,在QQ中点击我自己的空间链接,它会先发送:GET : http://ptlogin2.qq.com/jump?.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,然后重定向到:http://user.qzone.qq.com/AAAAAAAAAAAAA?.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 。

    Url中哪些XXXXXX就是QQ用来自动实现用户登录的令牌。这个令牌中可能不包含密码,但是肯定包含用户名。

    通过 Url 参数来识别用户身份,而不是通过用户名和密码来识别用户身份的方式也有好多种,比如QQ有心跳,可以在服务器上更新一个 SessionID,那么可以通过在 Url 参数中携带此 SessionId的方式来完成自动登录。

    如果你无法修改服务器,那么你需要自己建一个服务器页面,点击链接后先访问你的 Url,你根据 Url 参数重定向到对方的登录 url。


    2013年1月25日 2:43

全部回复

  • 不能直接给IE。

    2013年1月24日 7:03
  • 你可以在程序里面设置一个WebBrowser控件..然后通过设置webBrowser来设置它的cookie

    webBrowser1.Document.Cookie


    认真的活,认真的爱!

    2013年1月24日 11:33
    版主
  • 把用户名与密码加密后通过 URL 参数的方式传给 WEB 页,Web 页对应的解析用户名密码进行验证后实现下载

    知识改变命运,奋斗成就人生!

    2013年1月25日 1:22
    版主
  • 问题:

    1、如果我不能修改服务器呢?就是说服务器是别人的,我只有用户名和密码,我无法通过加密方式传递,因为服务器那边不懂我的加密方式,我也改不了;

    2、我不知道你们用不用QQ、旺旺,这些软件都有从客户端打开网页并且自动登录的功能,而且绝对不是在url上传递用户名和密码实现的。


    da jia hao!

    2013年1月25日 2:15
  • 我要求的效果是直接打开IE窗口,不是在程序里面使用浏览器控件。


    da jia hao!

    2013年1月25日 2:15
  • QQ 也是用 URL 参数来做的,只不过传递的能数与实现的机制不同

    知识改变命运,奋斗成就人生!

    2013年1月25日 2:22
    版主
  • 问题:

    1、如果我不能修改服务器呢?就是说服务器是别人的,我只有用户名和密码,我无法通过加密方式传递,因为服务器那边不懂我的加密方式,我也改不了;

    2、我不知道你们用不用QQ、旺旺,这些软件都有从客户端打开网页并且自动登录的功能,而且绝对不是在url上传递用户名和密码实现的。


    da jia hao!

    你可以用 Fiddler 抓包来分析下,根据我的观察,当本地Cookie失效后,在QQ中点击我自己的空间链接,它会先发送:GET : http://ptlogin2.qq.com/jump?.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,然后重定向到:http://user.qzone.qq.com/AAAAAAAAAAAAA?.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 。

    Url中哪些XXXXXX就是QQ用来自动实现用户登录的令牌。这个令牌中可能不包含密码,但是肯定包含用户名。

    通过 Url 参数来识别用户身份,而不是通过用户名和密码来识别用户身份的方式也有好多种,比如QQ有心跳,可以在服务器上更新一个 SessionID,那么可以通过在 Url 参数中携带此 SessionId的方式来完成自动登录。

    如果你无法修改服务器,那么你需要自己建一个服务器页面,点击链接后先访问你的 Url,你根据 Url 参数重定向到对方的登录 url。


    2013年1月25日 2:43