Session Winform WebForm 共享

qu882618520 2010-03-17 10:32:20
可是winForm登录怎么记住Session或者cookie呢?因为该系统有winFrom和webForm组合的,有功能是WinForm,有WebForm,都需要验证身份,不想登录两次,希望WinForm登录后对Web也有Session效果
...全文
373 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
qu882618520 2012-10-04
  • 打赏
  • 举报
回复
好久没有来 CSDN 了 都到CNBLOGS 去了 想不到这个帖子还有人关注

嘿嘿

支持一下

如果想要解决方法的可以加我QQ:172828815
panlishou1 2011-12-29
  • 打赏
  • 举报
回复
public class session
{
private static Hashtable ht=new Hashtable();

/// <summary>
/// 保存临时对象
/// </summary>
/// <param name="key">对象名</param>
/// <param name="obj">对象</param>
public static void SetObject(string key, object obj)
{
if (ht.Contains(key))
{
ht.Remove(key);
ht.Add(key, obj);
}
else
{
ht.Add(key, obj);
}
}
/// <summary>
/// 获取保存到临时变里的的对象
/// </summary>
/// <param name="key">对象名</param>
/// <returns>对象</returns>
public static object GetObject(string key)
{
Hashtable temp = (Hashtable)ht;
if (temp.Contains(key))
{
return temp[key] ;
}
else
{
return null;
}
}
/// <summary>
/// 保存字符串到临时变量里
/// </summary>
/// <param name="key">变量名</param>
/// <param name="values">字符串</param>
public static void set(string key,string values)
{
if (ht.Contains(key))
{
ht.Remove(key);
ht.Add(key, values);
}
else
{
ht.Add(key, values);
}
}
/// <summary>
/// 获取临时变量的字符串值
/// </summary>
/// <param name="key">字符串名</param>
/// <returns>字符串</returns>
public static string get(string key)
{
try
{
Hashtable temp = (Hashtable)ht;
if (temp.Contains(key))
{
return temp[key].ToString();
}
else
{
return null;
}
}
catch
{
return null;
}
}
/// <summary>
/// 获取临时变量里的整数
/// </summary>
/// <param name="key">变量名</param>
/// <returns>整数</returns>
public static int getInt(string key)
{
Hashtable temp = (Hashtable)ht;
if (temp.Contains(key))
{
return Convert.ToInt16(temp[key].ToString());
}
else
{
return 0;
}
}
/// <summary>
/// 获取临时变里的浮点数
/// </summary>
/// <param name="key">变量名</param>
/// <returns>double数</returns>
public static double getIDouble(string key)
{
Hashtable temp = (Hashtable)ht;
if (temp.Contains(key))
{
return Convert.ToDouble(temp[key].ToString());
}
else
{
return 0;
}
}
/// <summary>
/// 获取临时变量名里的布尔值
/// </summary>
/// <param name="key">变量名</param>
/// <returns>布尔值</returns>
public static bool getBool(string key)
{
Hashtable temp = (Hashtable)ht;
if (temp.Contains(key))
{
return Convert.ToBoolean(temp[key]);
}
else
{
return false;
}
}
/// <summary>
/// 合并临时变量字符串
/// </summary>
/// <param name="key">变量名</param>
/// <param name="str">要合并的字符串</param>
/// <param name="lk">0为合并到尾部,1为加到头部</param>
public static void MergerSting(string key, string str,int lk=0)
{
string tk = get(key) + str;
}
/// <summary>
/// 累加整数到临时变量
/// </summary>
/// <param name="key">变量名</param>
/// <param name="iv">累加值</param>
public static void MergerInt(string key, int iv)
{
int tk = getInt(key) + iv;
SetObject(key, tk);
}
/// <summary>
/// 累加double到临时变量
/// </summary>
/// <param name="key">变量名</param>
/// <param name="dv">累加值</param>
public static void MergerDouble(string key, double dv)
{
double tk = getInt(key) + dv;
SetObject(key, tk);
}
/// <summary>
/// 删除临时变量
/// </summary>
/// <param name="key">变量名</param>
public static void remove(string key)
{
ht.Remove(key);
}
/// <summary>
/// 清除所有临时变量
/// </summary>
public static void clearAll()
{
ht.Clear();
}
}
xishuango0o0 2011-12-27
  • 打赏
  • 举报
回复
楼主是最后是怎么解决的?上线能给个联系方式请教下么?
qu882618520 2010-03-26
  • 打赏
  • 举报
回复
刚才打错了,是12楼的兄弟


请12楼的兄弟不要怪,100分平均下来,还差5 分,在这里跟12楼的兄弟说声对不起

qu882618520 2010-03-26
  • 打赏
  • 举报
回复
请8楼的兄弟不要怪,100分平均下来,还差5 分,在这里跟8楼的兄弟说声对不起
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
关键是用WEBQUEST 之后,他防问WEB 服务器上的页面,同时我也在WEB 页面上创建了SESSION ,和COOKIES ,用WINFORM ,再仿问页面的时候COOKIES是存在的,但是 用IE 浏览器看的时候是没有COOKIES


如果直接用IE访问页面,但COOKIES 存在,有谁能告诉我这是怎么一回事情吗,还是需要加入SOCKET 技术呢,


那么SOCKET 请求HTTP的时候,能否让浏览器IE知道之前有COOKIES
asge8900 2010-03-18
  • 打赏
  • 举报
回复
winform记住session,因该是不行的哦,session是web的对象
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
这个不行呀,我需要的是像QQ 那样的功能,和MSN 邮箱那样的,在客户端登陆WINFORM 之后,


进浏览器可以直接知道是那个用户,知道状态


这个怎么做呢,
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chenpk0912 的回复:]
引用 8 楼 qu882618520 的回复:
引用 5 楼 wuxing2006 的回复:
QQ是什么样的呢
是这样的
在QQ界面上点击相应的功能,如空间时

就会将当前用户信息生产一个加密的字符串,然后打开网页将这个字符串传过去
然后网页后台就解析这个字符串,生成网页的登陆信息


你错了,如果你不点,直接开IE浏览器,然后自己手工输入网址,一样浏览器也会知道 是谁登陆了
……
[/Quote]

谢谢你的提意,这种方式也行,但是有一点不太好,
第一:路径的问题,也就是说每次我都要把文件路径告之给B/S 的程序,再就是文件流的问题,我想你肯定会说用二进制的,
第二:就是信息加密的问题

不现我现在已经做了我自己认为很完美的解决方法


这几天先把任务完成,过几天将完整例子从我的项目中抽取出来,然后贴出来

可以做到只Session Cookies 时时检测,即下线处理,类似QQ那样的,现在的实现模式跟QQ差不多,但绝对不是像6楼说的那样

谢谢大家,
chenpk0912 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qu882618520 的回复:]
引用 5 楼 wuxing2006 的回复:
QQ是什么样的呢
是这样的
在QQ界面上点击相应的功能,如空间时

就会将当前用户信息生产一个加密的字符串,然后打开网页将这个字符串传过去
然后网页后台就解析这个字符串,生成网页的登陆信息


你错了,如果你不点,直接开IE浏览器,然后自己手工输入网址,一样浏览器也会知道 是谁登陆了
[/Quote]
当你在c/s中登陆之后 将信息写到一个文件中,当打开b/s的时候 判断读取这个文件 获取信息创建登陆
messi_yang 2010-03-18
  • 打赏
  • 举报
回复
winform應該不能吧?
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
谁有现成的代码
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
如果是用Cookies 那么,要怎样使用,如何建议,使得一登陆就会产生一个Cookies


有现成的代码
qu882618520 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuxing2006 的回复:]
QQ是什么样的呢
是这样的
在QQ界面上点击相应的功能,如空间时

就会将当前用户信息生产一个加密的字符串,然后打开网页将这个字符串传过去
然后网页后台就解析这个字符串,生成网页的登陆信息
[/Quote]

你错了,如果你不点,直接开IE浏览器,然后自己手工输入网址,一样浏览器也会知道 是谁登陆了
灵雨飘零 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuxing2006 的回复:]
QQ是什么样的呢
是这样的
在QQ界面上点击相应的功能,如空间时

就会将当前用户信息生产一个加密的字符串,然后打开网页将这个字符串传过去
然后网页后台就解析这个字符串,生成网页的登陆信息
[/Quote]
chen_ya_ping 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 qu882618520 的回复:]
可是winForm登录怎么记住Session或者cookie呢?因为该系统有winFrom和webForm组合的,有功能是WinForm,有WebForm,都需要验证身份,不想登录两次,希望WinForm登录后对Web也有Session效果
[/Quote]
要不用COOKIE算了。
wuxing2006 2010-03-18
  • 打赏
  • 举报
回复
QQ是什么样的呢
是这样的
在QQ界面上点击相应的功能,如空间时

就会将当前用户信息生产一个加密的字符串,然后打开网页将这个字符串传过去
然后网页后台就解析这个字符串,生成网页的登陆信息
wuyq11 2010-03-17
  • 打赏
  • 举报
回复
WEBBROWER显示页面
CookieContainer myCookieContainer = new CookieContainer();
string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split( '; ');
foreach (string str in cookstr)
{

}

62,242

社区成员

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

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

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

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