潜伏的幽灵 - 2008-4-23 19:14:00
数据转换结束后,英文名字的用户可以正常登陆
但是中文名称的用户确无法正常登陆,经过后台修改密码,即将正确的密码从新设置1次即可正常登陆。
我这里有很多的用户,不可能手动挨个去帮他们后台修改。请问是什么原因?
补充下,我是先将VBB论坛数据转换为discuz!6.0.0数据,在将discuz!6.0.0的数据转换为discuz!NT2.0的数据!
在补充1个就是,我使用的是论坛转换工具转换的数据。但是连接数据库的论坛部分使用的是源代码编译出来的论坛,不是直接执行的论坛安装程序!
不过,我专门单独执行过1个论坛的安装程序,然后将转换好的数据库覆盖安装的数据库一样会出现这个错误!
public static int CheckPasswordAndSecques(string username, string password, bool originalpassword, int questionid, string answer)
{
IDataReader reader = DatabaseProvider.GetInstance().CheckPasswordAndSecques(username, password, originalpassword, ForumUtils.GetUserSecques(questionid, answer));
int userid = -1;
if(reader.Read())
{
userid = Int32.Parse(reader[0].ToString());
}
reader.Close();
return userid;
}
查了下,执行到User.cs类的这个方法的时候
int userid=-1
if(reader.Read()) //执行到这1步的时候
{
userid = Int32.Parse(reader[0].ToString()); //这个没有执行,然后直接就跳出去了,返回了userid=-1
}
所以麻烦斑竹看看是怎么回事吧!
戏水 - 2008-4-24 9:15:00
转换后 , 请用admin ,dntadmin登录, 然后 修改 后台 - 全局 - 密码模式 ,改为 动网密码兼容模式。
潜伏的幽灵 - 2008-4-24 10:29:00
已设置为动网兼容模式,为什么还是无法登陆?
戏水 - 2008-4-25 9:07:00
您是从vbb转过来的 , 请查看您的数据库中dnt_users表password字段 里是不是标准的md5值(32) 或者是 动网那样的 16位md5值 。 如果都不是,很抱歉,目前没有直接的密码兼容模式。
潜伏的幽灵 - 2008-4-25 9:55:00
我又从新查了1遍流程,Vbb的密码编码模式更本就不是标准的md5值。你们有什么好的解决方案吗?
其实,我自己有个想发,不过要动数据库和程序,麻烦啊!
潜伏的幽灵 - 2008-4-28 15:10:00
唉,在Discuz的登陆代码那,写了个复杂的登陆流程,强制update了~~!!
loveinlove - 2008-4-29 9:39:00
哇。。那别人输错密码怎么办
潜伏的幽灵 - 2008-4-30 10:56:00
肯定是先和另外个数据库中的密码对比了!