设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2568|回复: 1
打印 上一主题 下一主题

帮忙看下代码,谢谢了

[复制链接]

4

主题

17

帖子

74

积分

注册会员

Rank: 2

积分
74
跳转到指定楼层
楼主
发表于 2015-8-3 16:48:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static int id = 1;
        // 用户身份验证回调函数定义
        // 根据函数返回值决定是否验证身份成功,当返回0时,必须分配一个唯一的userid
        public static int OnVerifyUserCallBack(string userName, string password, ref int userID, ref int userLevel, IntPtr nickName, int len, int userValue)
        {
            SQLiteHelper db = new SQLiteHelper();
            SQLiteDataReader loginInfo = db.Read("select loginPwd,nickName,online,HYID,SFZC,HYM from userInfo where loginName = @loginName", new SQLiteParameter("@loginName", userName));
            String pwd = "";
            String trueName = "";
            int online = 0;
            while (loginInfo.Read())
            {
                pwd = loginInfo.GetString(0);
                trueName = loginInfo.GetString(1);
                online = loginInfo.GetInt32(2);
            }
            db.Close();
            if ((pwd).Equals(password) && online == 0)
            {
                userID = id;
                id = id + 1;
                // 返回一个用户的昵称,若为空,则核心服务器会用userName来替代
                //byte[] toBytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("gb2312"), Encoding.UTF8.GetBytes(trueName));
               // Marshal.Copy(toBytes, 0, nickName, toBytes.Length);
                db.Exc("Update userInfo set online = @userId where loginName = @loginName", new SQLiteParameter[] { new SQLiteParameter("@userId", userID), new SQLiteParameter("@loginName", userName) });

                return 0;
            }
            else if (online != 0)
            {
                return 100;
            }
            else
            {
                return 200;
            }

// 用户登录成功回调函数定义
        public static void OnUserLoginActionCallBack(int userId, string userName, int level, string addr, int userValue)
        {
            if (OnUserLoginActionReceived != null)
            {
                OnUserLoginActionReceived(userId, userName, level, addr, userValue);
                SQLiteHelper db = new SQLiteHelper();
                SQLiteDataReader loginInfo = db.Read("select HYID,SFZC,HYM from userInfo where loginName = @loginName", new SQLiteParameter("@loginName", userName));
                int mHYID = -1;
                int mSFZC = -1;
                String mHYM = "";
                while (loginInfo.Read())
                {
                    mHYID = loginInfo.GetInt32(0);
                    mSFZC = loginInfo.GetInt32(1);
                    mHYM = loginInfo.GetString(2);
                }
                db.Close();
                SQLiteHelper db1 = new SQLiteHelper();
                SQLiteDataReader loginInfo1 = db1.Read("select loginName from userInfo where HYID = @HYID and SFZC=1", new SQLiteParameter("@HYID", mHYID));
                string muserName = "";
                while (loginInfo1.Read())
                {
                    muserName = loginInfo1.GetString(0);
                }
                db1.Close();
                string FS = mHYID.ToString() + ":" + mSFZC.ToString() + ":" + mHYM + ":" + muserName;
                byte[] bytes = System.Text.Encoding.Default.GetBytes(FS);
                int ret = AnyChatServerSDK.BRAS_TransBuffer(userId, bytes, bytes.Length);
            }
        }
// 返回一个用户的昵称,若为空,则核心服务器会用userName来替代
                //byte[] toBytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("gb2312"), Encoding.UTF8.GetBytes(trueName));
               // Marshal.Copy(toBytes, 0, nickName, toBytes.Length);
想显示昵称,把这个注释去掉之后,后面登录成功回调函数里访问数据库就不行了,while (loginInfo.Read())里面的不执行,Marshal.Copy(toBytes, 0, nickName, toBytes.Length)这句怎么改啊,没有这句后面执行都正常

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
发表于 2015-8-5 15:54:07 | 只看该作者
您好,能再表述下您的问题吗?您是说注释身份验证里面返回的昵称,登录回调的读取数据库就不能成功了吗?后面的while不执行是只身份验证还是登录回调里面的呢?Marshal.Copy这个可以进行接收一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-4-29 06:18 , Processed in 0.149968 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表