各位达人,我当下有几个问题需要解决:
  
  我们公司现在存在一套B/S模式的OA系统,这个系统也是我们自己用ASP.Net做的,同时,我们还有若干C/S模式的管理软件,也是自己开发,现在存在这样一个问题,我们老板需要做到OA和其它的软件共享用户登录状态的信息,也就是说如果我在Web上登录了OA的话,希望启动我们的其它WinForm软件的时候,WinForm可以直接获取当前OA登录的用户的信息,然后自动登录. 另,如果我们在WinForm里面登录的话,也需要浏览器能自动登录OA.
  本来我们考虑到将登录信息保存到数据库,用WebService等,但是我不大容易控制状态的生存期.如果大家在这个方面有想法,希望大家也谈谈.
  我们的Web的OA创建了持久Cookie(跨浏览器会话保存的Cookie),关于这个,我已经通过IE和theWorld验证过了,我在IE里面登录OA,然后用TheWorld打开OA页面,可以不需要再次登录.
  我需要在我们的WinForm中做到这些.目前的问题:
  1,我可以用HttpWebRequest模拟登录,但是登录后,不知道要怎么创建持久cookie,导致IE等浏览器打开OA还要重复登录.
  2,登录使用HttpWebRequest怎么传Form里面的值?我是通过login.aspx?user=xxx&password=yyy的形式登录的,这个明显得不妥当.
  3,Web OA已经登录的情况下,我如何获取当前登录的用户名?可以直接使用MembershipProvider吗?使用Web Service可以吗?或者,我最希望的是直接获取,因为既然别的浏览器可以获取用户凭证.
  4,或者,我虽然可以获取用户凭证,不需要登录,但是用户名还是无法获取?因为我想,浏览器是不是本身并没有需要获取用户名,他只需要有个凭证就可以了?所以,winform很难获取用户名?
  
  江湖告急,请各位一定要捧场啊!

解决方案 »

  1.   

    顶  不过不太会wimform  搞b/s的
      

  2.   

    1,我可以用HttpWebRequest模拟登录,但是登录后,不知道要怎么创建持久cookie,导致IE等浏览器打开OA还要重复登录.手动创建cookie文件, 超时时间设置久点
      2,登录使用HttpWebRequest怎么传Form里面的值?我是通过login.aspx?user=xxx&password=yyy的形式登录的,这个明显得不妥当.这样写网址, user=textbox1.text&password=textbox2.text, 然后连过去. web那边不用改动的.  3和4,Web OA已经登录的情况下,我如何获取当前登录的用户名?可以直接使用MembershipProvider吗?使用Web Service可以吗?或者,我最希望的是直接获取,因为既然别的浏览器可以获取用户凭证.不可以, 还是用cookie吧....
      

  3.   

    winform 里嵌一个 WebBrowser,然后通过这个 WebBrowser 读写 cookie
      

  4.   

    既然WebBrowser可以做到 按理我的winform也可以阿