整合discuz论坛时,网站Cookie在论坛不起作用。
aqqzy 2007-09-01 04:06:46 运行环境:
windows XP sp2,IIS5.1,.net Framework1.1,SQL Server 2000 ,Discuz!NT 1.0.2656,机器名“web”
安装环境:
本机的默认站点为我所做的.net网站,论坛放在默认站点下bbs目录中。本机访问网站使用“http://web/”,访问论坛使用“http://web/bbs”。
现在可以正常访问论坛(登录,注册都没有问题)。在现在网站中的用户只有一个MemberID加入到Discuz论坛数据库中“dnt_users”表中。
现在在网站中登录,我需要用MemberID和密码登录,我自己写的一个函数,来判断输入的MemberID和密码是否与“dnt_users”中的数据匹配。如果输入正确后,得到uid。然后调用论坛的登录方法登录,代码如下:
LoginLogFactory.DeleteLoginLog(DNTRequest.GetIP());
UserCreditsFactory.UpdateUserCredits(uid);
ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), config.Passwordkey, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));
OnlineUserFactory.UpdateAction(oluserinfo.Olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
UserFactory.UpdateUserLastvisit(uid, DNTRequest.GetIP());
在登录后,本页可以读取出ForumUtils.WriteUserCookie所写入的几个cookie的值。但到论坛却显示不出用户登录信息。
后来修改了Cookie的作用域为“web/”,即bbs/config/general.config文件中的“ <CookieDomain>web/</CookieDomain>”。但在论坛中还是不能显示出用户信息。
我在网站中建立了一个webform1.aspx文件,来读取Cookie信息,在论坛中使用admin登录后,可以读取出所有cookie信息。
总结一下,就是网站和论坛都能正常登录,在网站中登录后,论坛无法识别,但在论坛中登录,网站中可以读取出在论坛中登录的信息。
现在的问题是不是cookie的作用域设置有问题,请大家帮忙解决,多谢了!