日期:2014-05-18  浏览次数:20627 次

关于在WinForm里面登录Web的若干问题
各位达人,我当下有几个问题需要解决:
   
    我们公司现在存在一套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很难获取用户名?
   
    江湖告急,请各位一定要捧场啊!


------解决方案--------------------
sf
------解决方案--------------------
顶 不过不太会wimform 搞b/s的
------解决方案--------------------
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吧....



------解决方案--------------------
mark,友情UP一下
------解决方案--------------------
还是考虑在数据库里做做文章。
------解决方案--------------------
winform 里嵌一个 WebBrowser,然后通过这个 WebBrowser 读写 cookie
------解决方案--------------------
我看还是在数据库当做文章吧,记录登陆的IP,用户名等
------解决方案--------------------
学习中~~
友情UP
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
Up
jf