Esempio n. 1
0
        private void OnUpdateEmailVerify(Datagram datagram)
        {
            UpdateEmailVerify req = datagram.UnSerialData <UpdateEmailVerify>();

            UpdateEmailResponse response = new UpdateEmailResponse();

            if (EmailRequestCache.TryRemove(req.NextLabel, out EmailRequestPackage value))
            {
                if (InternalTools.VerificateCode(value.Verify, req.Verifies))
                {
                    Guid guid = Guid.NewGuid();
                    if (SQLDB.UpdateEmail(value.UserID, value.Email))
                    {
                        response.NextLabel = guid;
                    }
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.UpdateEmailResult;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
Esempio n. 2
0
        private void OnUpdatePWVerifyReq(Datagram datagram)
        {
            UpdatePWVerifyReq req = datagram.UnSerialData <UpdatePWVerifyReq>();

            UpdatePWResponse response = new UpdatePWResponse();

            if (EmailRequestCache.TryRemove(req.NextLabel, out EmailRequestPackage value))
            {
                if (InternalTools.VerificateCode(value.Verify, req.Verifies))
                {
                    Guid guid = Guid.NewGuid();
                    if (OperationFinishCache.TryAdd
                        (
                            guid,
                            new KeyValuePair <string, DateTime>(value.Email, DateTime.Now)
                        ))
                    {
                        response.NextLabel = guid;
                    }
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.UpdatePWVerifyRes;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
Esempio n. 3
0
        private void OnUpdatePWFinishReq(Datagram datagram)
        {
            UpdatePWFinishReq req = datagram.UnSerialData <UpdatePWFinishReq>();

            UpdatePWResponse response = new UpdatePWResponse();

            if (OperationFinishCache.TryGetValue
                (
                    req.NextLabel,
                    out KeyValuePair <string, DateTime> value
                ))
            {
                string user_id = InternalTools.GetNewUserID();
                if (SQLDB.UpdatePassword(value.Key, req.Password))
                {
                    response.NextLabel = Guid.NewGuid();
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.UpdatePWFinishRes;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
Esempio n. 4
0
        private void OnUpdateEmailReq(Datagram datagram)
        {
            UpdateEmailReq req = datagram.UnSerialData <UpdateEmailReq>();

            UpdateEmailResponse response = new UpdateEmailResponse();

            if (!SQLDB.CheckEmail(req.UserEmail))
            {
                if (SQLDB.SelectUserInfor(req.UserID, out UserInfoPackage info))
                {
                    Guid request_id = Guid.NewGuid();

                    byte[] ver_code = InternalTools.GenerateVerification();
                    if (EmailRequestCache.TryAdd(request_id, new EmailRequestPackage
                    {
                        UserID = info.ID,
                        Email = req.UserEmail,
                        Verify = ver_code,
                        Time = DateTime.Now
                    }))
                    {
                        if (
                            InternalTools.SendUpdateEmailVerificateEmail
                            (
                                req.UserEmail,
                                InternalTools.GenerateVerification(ver_code)
                            )
                            )
                        {
                            response.NextLabel = request_id;
                        }
                    }
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.UpdateEmailRes;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
Esempio n. 5
0
        private void OnRegistFinishReq(Datagram datagram)
        {
            RegistFinishReq req = datagram.UnSerialData <RegistFinishReq>();

            RegistResponse response = new RegistResponse();

            if (OperationFinishCache.TryGetValue
                (
                    req.NextLabel,
                    out KeyValuePair <string, DateTime> value
                ))
            {
                string user_id = InternalTools.GetNewUserID();
                if (SQLDB.Register(new RegisterPackage
                {
                    ID = user_id,
                    Name = req.Name,
                    Email = value.Key,
                    Describe = req.Describe,
                    Password = req.Password,
                    Phone = null,
                    Photo = req.Picture
                }))
                {
                    response.NextLabel = DataConvert.GetGuid(user_id);
                    UserInfoReader.CreateUser(user_id);
                    UserAppliesReader.CreateUser(user_id);
                    CloudReader.AddUser(user_id);
                    System.IO.Directory.CreateDirectory(CloudRootPath + "\\" + IKXTServer.DataConvert.GetGuid(user_id).ToString());
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.RegistFinishRes;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }