コード例 #1
0
        /// <summary>
        /// Register new component in problem instance
        /// </summary>
        /// <param name="networkAdapter"></param>
        /// <param name="message"></param>
        /// <param name="messageType"></param>
        /// <param name="timout"></param>        
        public void HandleMessage(ServerNetworkAdapter networkAdapter, string message, MessageType messageType, TimeSpan timout)
        {
            Register msg = MessageSerialization.Deserialize<Register>(message);

            if (msg == null || msg.SolvableProblems == null)// || msg.SolvableProblems.Where(p => p.ToLower().Contains("dvrp")).Count() == 0)
                return;

            DvrpProblem.WaitEvent.WaitOne();
            ulong id = DvrpProblem.CreateComponentID();
            DvrpProblem.ComponentsID.Add(id);

            if (msg.Type == RegisterType.ComputationalNode)
            {
                DvrpProblem.Nodes.Add(id, msg);
            }
            else
            {
                DvrpProblem.Tasks.Add(id, msg);
                DvrpProblem.ProblemsDividing.Add(id, new List<ulong>());
                DvrpProblem.SolutionsMerging.Add(id, new List<ulong>());
            }

            DvrpProblem.ComponentsLastStatus.Add(id, DateTime.UtcNow);
            RegisterResponse reponse = new RegisterResponse() { Id = id, Timeout = timout.ToString()};
            networkAdapter.Send(reponse);
            DvrpProblem.WaitEvent.Set();
        }
コード例 #2
0
        private void RecieveRegisterResponse()
        {
            try
            {
                registerResponse = networkAdapter.Receive<RegisterResponse>(false);
            }
            catch (Exception)
            {

                Console.WriteLine("Cannot recieve RegisterResponse");
            }
        }
コード例 #3
0
        /// <summary>
        /// common for TM and CN register response handler
        /// e.g. assigns componentId, timeout, ...
        /// (status sender thread)
        /// </summary>
        /// <param name="registerMessage"></param>
        protected virtual void handleRegisterResponses(Register registerMessage)
        {
            Message[]        requests         = creator.Create(registerMessage);
            Message[]        responses        = this.SendMessages(clusterClient, requests);
            RegisterResponse registerResponse = null;

            foreach (var response in responses)
            {
                switch (response.MessageType)
                {
                case MessageType.RegisterResponseMessage:
                    if (registerResponse != null)
                    {
                        throw new Exception("Multiple register responses");
                    }
                    log.Debug("RegisterResponse acquired: updating fields...");
                    registerResponse = response.Cast <RegisterResponse>();
                    break;

                case MessageType.NoOperationMessage:
                    log.Debug("NoOperation acquired: updating backups");
                    UpdateBackups(response.Cast <NoOperation>());
                    break;

                default:
                    throw new Exception("Invalid message delivered in register procedure "
                                        + response.ToString());
                }
            }

            if (registerResponse == null)
            {
                throw new Exception("No register response ");
            }

            componentId = registerResponse.Id;
            timeout     = registerResponse.Timeout;
        }
コード例 #4
0
ファイル: RegisterDialog.cs プロジェクト: sunfom/DeXign
        protected override async t.Task <bool> OnOkExecuting()
        {
            this.BeginLoading();

            RegisterResponse response = await DXAPI.Register(page.Email, page.Password, page.UserName, null, UserRole.DeXign);

            this.EndLoading();

            switch (response.Status)
            {
            case APIResponseStatus.Success:
                if (response.IsDuplicated)
                {
                    page.SetEmailDuplicated();
                    page.emailBox.Focus();

                    return(false);
                }

                MessageBox.Show("회원 가입이 완료됬습니다!\r\n\r\n이메일 인증 후 로그인이 가능합니다.\r\n이메일을 확인해주세요.", "DeXign", MessageBoxButton.OK, MessageBoxImage.Information);

                return(true);

            case APIResponseStatus.InternalError:
                MessageBox.Show("시스템 내부 오류", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);

            case APIResponseStatus.Failed:
                MessageBox.Show($"오류: {response.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);

            case APIResponseStatus.Unknown:
                MessageBox.Show("네트워크 오류", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }

            return(false);
        }
コード例 #5
0
        public async Task <RegisterResponse> Register([FromBody] RegisterRequest model)
        {
            var response = new RegisterResponse
            {
                Message = "Não foi possível registrar o usuário",
                Success = false
            };

            if (model.PasswordConf != model.Password)
            {
                response.Message = "A senha e confirmação da senha devem ser iguais";
            }

            if (model.Password.Length < 8)
            {
                response.Message = "A senha precisa conter no minimo 8 caracteres";
            }

            if (!ModelState.IsValid)
            {
                return(response);
            }

            var user = new ApplicationUser {
                UserName = model.Username, Email = model.Username
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, isPersistent : false);

                response.Success = result.Succeeded;
                response.Message = "Usuário registrado com sucesso";
            }

            return(response);
        }
コード例 #6
0
        public async Task <bool> CompleteRegistration(string userName, string deviceResponse)
        {
            if (string.IsNullOrWhiteSpace(deviceResponse))
            {
                return(false);
            }

            User user = await FindUserByUsername(userName);

            if (user?.AuthenticationRequest == null || user.AuthenticationRequest.Count == 0)
            {
                return(false);
            }


            RegisterResponse registerResponse = RegisterResponse.FromJson <RegisterResponse>(deviceResponse);

            // TODO When the user is registration they should only ever have one auth request.????
            AuthenticationRequest authenticationRequest = user.AuthenticationRequest.First();

            StartedRegistration startedRegistration = new StartedRegistration(authenticationRequest.Challenge, authenticationRequest.AppId);
            DeviceRegistration  registration        = Core.Crypto.U2F.FinishRegistration(startedRegistration, registerResponse);

            user.AuthenticationRequest.Clear();
            user.UpdatedOn = DateTime.Now;
            user.DeviceRegistrations.Add(new Device
            {
                AttestationCert = registration.AttestationCert,
                Counter         = Convert.ToInt32(registration.Counter),
                CreatedOn       = DateTime.Now,
                UpdatedOn       = DateTime.Now,
                KeyHandle       = registration.KeyHandle,
                PublicKey       = registration.PublicKey
            });
            int result = await _dataContext.SaveChangesAsync();

            return(result > 0);
        }
コード例 #7
0
        public async Task <RegisterResponse> RegisterAsync(RegisterRequest request)
        {
            var result = new RegisterResponse {
                Errors = new List <string>(), Succeed = false
            };
            var userExists = await _dbContext.Users.FirstOrDefaultAsync(mod => mod.Username == request.Username || mod.Email == request.Email) != null;

            if (userExists)
            {
                result.Errors.Add("User arleady exists!");
                return(result);
            }

            var model = new UserModel {
                CreationDate = DateTime.UtcNow, Email = request.Email, Username = request.Username, Verified = false, HashedPassword = HashPassword(request.Password), UserProfile = new UserProfileModel()
            };

            _dbContext.Users.Add(model);
            _dbContext.SaveChanges();
            result.Succeed = true;

            return(result);
        }
コード例 #8
0
ファイル: Server.cs プロジェクト: Ailtop/RustDocuments
        private static bool TryLoadServerRegistration(out string serverId, out string serverToken)
        {
            serverId    = null;
            serverToken = null;
            string serverIdPath = GetServerIdPath();

            if (!File.Exists(serverIdPath))
            {
                return(false);
            }
            try
            {
                RegisterResponse registerResponse = JsonConvert.DeserializeObject <RegisterResponse>(File.ReadAllText(serverIdPath));
                serverId    = registerResponse.ServerId;
                serverToken = registerResponse.ServerToken;
                return(true);
            }
            catch (Exception arg)
            {
                Debug.LogError($"Failed to load companion server registration: {arg}");
                return(false);
            }
        }
コード例 #9
0
        public async Task <IActionResult> Register([FromBody] RegisterRequest model)
        {
            var employee = new DbEmployee
            {
                FirstName = model.FirstName,
                LastName  = model.LastName,
                Email     = model.Email,
                Office    = model.Office
            };

            var result = await _userManager.CreateAsync(employee, model.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors.First().Description));
            }

            var responseId = new RegisterResponse {
                Id = employee.Id
            };

            return(Ok(responseId));
        }
コード例 #10
0
        private void CreateResponses()
        {
            _startedRegistration = new StartedRegistration(TestConts.SERVER_CHALLENGE_REGISTER_BASE64, TestConts.APP_ID_ENROLL);

            _registerResponse = new RegisterResponse(TestConts.REGISTRATION_RESPONSE_DATA_BASE64,
                                                     TestConts.CLIENT_DATA_REGISTER_BASE64);

            _deviceRegistration = new DeviceRegistration(
                TestConts.KEY_HANDLE_BASE64_BYTE,
                TestConts.USER_PUBLIC_KEY_AUTHENTICATE_HEX,
                Utils.Base64StringToByteArray(TestConts.ATTESTATION_CERTIFICATE),
                0);

            _authenticateResponse = new AuthenticateResponse(
                TestConts.CLIENT_DATA_AUTHENTICATE_BASE64,
                TestConts.SIGN_RESPONSE_DATA_BASE64,
                TestConts.KEY_HANDLE_BASE64);

            _startedAuthentication = new StartedAuthentication(
                TestConts.SERVER_CHALLENGE_SIGN_BASE64,
                TestConts.APP_SIGN_ID,
                TestConts.KEY_HANDLE_BASE64);
        }
コード例 #11
0
        public async Task <RegisterResponse> Register(RegisterModel model)
        {
            var user   = new ApplicationUser(model.Email);
            var result = await this.userManager.CreateAsync(user);

            var response = new RegisterResponse();

            if (!result.Succeeded)
            {
                response.Succeeded = false;

                foreach (var error in result.Errors)
                {
                    response.Errors.Add($"{error.Code}: {error.Description}");
                }
            }
            else
            {
                response.Succeeded = true;
            }

            return(response);
        }
コード例 #12
0
ファイル: frmMain.cs プロジェクト: binkycs/Auxilium-2
        internal void HandleRegisterResponse(RegisterResponse register)
        {
            if (InvokeRequired)
            {
                Invoke(new MethodInvoker(() => HandleRegisterResponse(register)));
                return;
            }

            if (register.Successful)
            {
                ChangeTab(MainIndex.Login);
                UpdateStatus("Status: Registered.");
            }
            else
            {
                UpdateStatus("Status: Registration failed.");
            }

            if (register.Message != null)
            {
                MessageBox.Show(register.Message, "", MessageBoxButtons.OK, (MessageBoxIcon)register.ErrorCode);
            }
        }
コード例 #13
0
        public async Task <IActionResult> Register([FromBody] RegisterUserDto request)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(StatusCode(StatusCodes.Status401Unauthorized));
            }

            if (ModelState.IsValid)
            {
                RegisterResponse response  = new RegisterResponse();
                var registrationResultUser = await this.identityService.RegisterUserAsync(request);

                if (registrationResultUser != null)
                {
                    response.Success = true;
                    response.Message = "Registration success";
                }

                return(Ok(response));
            }

            return(StatusCode(StatusCodes.Status400BadRequest));
        }
コード例 #14
0
ファイル: UserRequest.cs プロジェクト: iSudocat/SudoDrive
        public int Register(string username, string password, string nickname, out RegisterResponse registerResponse)
        {
            var client  = new RestClient(ServerAddress.Address + "/api/register");
            var request = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "application/json");
            var requestBody = new { username, password, nickname };

            request.AddParameter("application/json", JsonConvert.SerializeObject(requestBody), ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            Console.WriteLine(response.Content);
            registerResponse = JsonConvert.DeserializeObject <RegisterResponse>(response.Content);
            if (registerResponse != null)
            {
                return(registerResponse.status);
            }
            else
            {
                registerResponse = null;
                return(-20000);
            }
        }
コード例 #15
0
    void RegisterWithServer()
    {
        string endpoint;

        if (this.whatAmI == playerType.plane)
        {
            endpoint = "/planes";
        }
        else
        {
            endpoint = "/monsters";
        }

        string url  = this.ServerUrlBase + endpoint;
        string info = this.sendServerCall(url, "POST", "");

        RegisterResponse resp = JsonUtility.FromJson <RegisterResponse>(info);

        if (resp.id != "")
        {
            this.selfId = resp.id;
        }
    }
コード例 #16
0
        public void SetUp()
        {
            _userRepository = new Mock <IUserRepository>();
            _userRepository.Setup(x => x.CreateUser(It.IsAny <CreateUserRequest>())).Returns(new CreateUserResponse());
            _userRepository.Setup(x => x.GetUser(It.IsAny <string>())).Returns(new GetUserResponse
            {
                User = new UserRecord
                {
                    Username  = "******",
                    Picture   = "XuhV+MYOtWbMMMjlhD9qxg==",
                    UserToken = "P4rp8qs9/TEZP66ZYKNLvQ=="
                }
            });

            _authenticator = new Mock <IAuthenticator>();
            _authenticator.Setup(x => x.Authenticate(It.IsAny <IAuthenticationRequest>())).Returns(new BaseAuthenticationResponse
            {
                Username = "******",
                Picture  = "SOME_PICTURE",
                UserId   = "SOME_USER_ID"
            });

            _authenticationFactory = new Mock <IAuthenticatorFactory>();
            _authenticationFactory.Setup(x => x.For(It.IsAny <Authenticator>())).Returns(_authenticator.Object);
            ;
            var keyReader = new Mock <IKeyReader>();

            keyReader.Setup(x => x.GetKey()).Returns("SOME_KEY");

            var subject = new UserService(_userRepository.Object, _authenticationFactory.Object, new UserMapper(new AesEncryptor(keyReader.Object.GetKey())));

            _result = subject.Register(new RegisterRequest
            {
                UserToken     = "SOME_TOKEN",
                Authenticator = Authenticator.Google
            });
        }
コード例 #17
0
        public async Task <RegisterResponse> RegisterAsync(RegisterRequest registerRequest, CancellationToken cancellationToken = default)
        {
            var messages = new List <string>();
            var user     = new User
            {
                Name     = registerRequest.Name,
                Email    = registerRequest.Email,
                UserName = registerRequest.Email
            };
            var result = await _authRespository.RegisterAsync(user, registerRequest.Password, cancellationToken);

            if (result.Succeeded)
            {
                messages.Add("User Registered");
                var registerResponse = new RegisterResponse
                {
                    Name       = registerRequest.Name,
                    Email      = registerRequest.Email,
                    StatusCode = System.Net.HttpStatusCode.Created,
                    Messages   = messages
                };
                return(registerResponse);
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    messages.Add(error.Description);
                }
                var registerResponse = new RegisterResponse
                {
                    StatusCode = System.Net.HttpStatusCode.InternalServerError,
                    Messages   = messages
                };
                return(registerResponse);
            }
        }
コード例 #18
0
        public override async void Post(HttpListenerContext ctx)
        {
            RegisterRequest request = await ReadJsonObject <RegisterRequest>(ctx.Request);

            RegisterResponse response = new RegisterResponse();
            string           message;

            if (String.IsNullOrWhiteSpace(request.Account) || String.IsNullOrWhiteSpace(request.Password))
            {
                message = String.Format("Could not create account ({0}), account or password empty", request.Account);
                Logger.Error(message);
                response.Success = false;
                response.Message = message;
                SendJsonObject(ctx.Response, response);
                return;
            }

            string  bCryptHash = BCrypt.Net.BCrypt.HashPassword(request.Password, ApiSettings.BCryptWorkFactor);
            Account account    = Database.CreateAccount(request.Account, bCryptHash);

            if (account == null)
            {
                message = String.Format("Could not create account ({0}), account already exists", request.Account);
                Logger.Error(message);
                response.Success = false;
                response.Message = message;
                SendJsonObject(ctx.Response, response);
                return;
            }

            message = String.Format("Created new account: {0}", request.Account);
            Logger.Info(message);
            response.Success = true;
            response.Message = message;
            SendJsonObject(ctx.Response, response);
        }
コード例 #19
0
        protected void RegisterRequest(PacketHeader header, Connection connection, RegisterRequest account)
        {
            // ########################################################################
            // This method requires authentication.
            // If user is not authorized then send UnAuthorized and end method.
            if (!Authorized(connection))
            {
                TCPConnection.GetConnection(connection.ConnectionInfo).SendObject(
                    PacketName.ReUnauthorized.ToString(), 1);

                return;
            }
            // ########################################################################

            if (Administrator(connection))
            {
                RegisterResponse response = RegisterResponse.Failure;

                if (account.username.Length > 3 && account.password.Length > 3)
                {
                    if (accountRepository.UsernameExist(account.username))
                    {
                        response = RegisterResponse.UsernameTaken;
                    }
                    else
                    {
                        accountRepository.Add(account.username, Security.PasswordHasher.HashPassword(account.password), account.firstname, account.lastname);

                        response = RegisterResponse.Success;
                    }
                }

                TCPConnection.GetConnection(connection.ConnectionInfo).
                SendObject(PacketName.ReRegisterAccount.ToString(), (int)response);
            }
        }
コード例 #20
0
        public override Task <ProcessingResult> GetProcessingResult(RegisterResponse registerResponse, ServerCallContext context)
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(new DirectoryInfo(Directory.GetCurrentDirectory()).Parent.FullName + "/config")
                         .AddJsonFile("config.json", optional: false)
                         .Build();
            string idResult = registerResponse.Id + "_rating";
            var    result   = new ProcessingResult {
                Status = "Processing", Response = "no response"
            };

            for (int i = 0; i < REQUEST_REPEATS; i++)
            {
                string response = getFromDB(idResult);
                if (response != null)
                {
                    result.Status   = "Completed";
                    result.Response = response;
                    break;
                }
                Thread.Sleep(DELAY);
            }
            return(Task.FromResult(result));
        }
コード例 #21
0
        private void BtnRegister_Click(object sender, EventArgs e)
        {
            //!Regex.IsMatch(txtRegisterEmail.Text, @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"))
            if (dxRegisterValidationProvider.Validate())
            {
                RegisterResponse regRes = GlobalContext.Instance.AuthClient.Post(new Register()
                {
                    FirstName       = txtRegisterFirstName.Text,
                    LastName        = txtRegisterLastName.Text,
                    DisplayName     = $"{txtRegisterFirstName.Text} {txtRegisterLastName.Text }",
                    UserName        = txtRegisterUserName.Text,
                    Email           = txtRegisterEmail.Text,
                    Password        = txtRegisterPassword1.Text,
                    ConfirmPassword = txtRegisterPassword2.Text,
                    AutoLogin       = true,
                });

                //send of registration and move to login page
                tabCtrlLoginRegister.SelectedTabPage = tabLogin;
                tabRegister.PageVisible = false;
                tabLogin.PageVisible    = true;
                //DialogResult = DialogResult.Yes;
            }
        }
コード例 #22
0
ファイル: AccountController.cs プロジェクト: RouR/ToDo-ToBuy
        public async Task <RegisterResponse> Register([FromBody] RegisterRequest request)
        {
            RegisterResponse response;

            if (request == null)
            {
                response = new RegisterResponse();
                response.SetError("Invalid register request");
                return(response);
            }

            request.PublicId = Guid.NewGuid();
            request.IP       = _ipAddressParser.GetClientIp(HttpContext).ToString();
            var registerResponse = await _accountServiceClient.User_Register(_mapper.Map <CreateUserRequest>(request));

            response = new RegisterResponse()
            {
                HasError = registerResponse.HasError,
                Message  = registerResponse.Message,
                Data     = registerResponse.Data?.PublicId ?? Guid.Empty
            };

            return(response);
        }
コード例 #23
0
        public override Task <RegisterResponse> Register(RegisterRequest request, ServerCallContext context)
        {
            string id   = Guid.NewGuid().ToString();
            var    resp = new RegisterResponse {
                Id = id
            };

            _jobs[id] = request.Description;

            var model = new RedisModel {
                Description = request.Description, Data = request.Data
            };
            string    result = JsonSerializer.Serialize(model);
            IDatabase db     = _redis.GetDatabase();

            db.StringSet(id, result);

            string message = $"JobCreated|{id}";

            byte[] payload = Encoding.Default.GetBytes(message);
            _connection.Publish("events", payload);

            return(Task.FromResult(resp));
        }
コード例 #24
0
        public virtual void TestProcessRegistrationResponse_OneTransport()
        {
            mockDataStore.Setup(x => x.GetEnrollSessionData(SESSION_ID))
            .Returns(new EnrollSessionData(ACCOUNT_NAME, APP_ID_ENROLL, SERVER_CHALLENGE_ENROLL));
            var trustedCertificates = new List <X509Certificate>();

            trustedCertificates.Add(TRUSTED_CERTIFICATE_ONE_TRANSPORT);
            mockDataStore.Setup(x => x.GetTrustedCertificates()).Returns(trustedCertificates);
            var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object, mockDataStore.Object, crypto,
                                                       TRUSTED_DOMAINS);

            var registrationResponse = new RegisterResponse(REGISTRATION_RESPONSE_DATA_ONE_TRANSPORT_BASE64,
                                                            BROWSER_DATA_ENROLL_BASE64, SESSION_ID);

            u2FServer.ProcessRegistrationResponse(registrationResponse, 0L);

            var transports = new List <SecurityKeyDataTransports>();

            transports.Add(SecurityKeyDataTransports.BluetoothRadio);
            var expectedKeyData = new SecurityKeyData(0L, transports, KEY_HANDLE, USER_PUBLIC_KEY_ENROLL_HEX,
                                                      TRUSTED_CERTIFICATE_ONE_TRANSPORT, 0);

            mockDataStore.Verify(x => x.AddSecurityKeyData(ACCOUNT_NAME, expectedKeyData));
        }
コード例 #25
0
        public virtual RegisterResponse Register(RegisterRequest registerRequest)
        {
            var registerResponse = new RegisterResponse();

            if (string.IsNullOrEmpty(registerRequest.Email))
            {
                registerResponse.Errors.Add("Email address is not valid");
                return(registerResponse);
            }
            if (string.IsNullOrEmpty(registerRequest.Password))
            {
                registerResponse.Errors.Add("Password is not valid");
                return(registerResponse);
            }

            var customer = new Customer();

            customer.Email    = registerRequest.Email;
            customer.Password = registerRequest.Password;

            _customerRepository.Insert(customer);

            return(registerResponse);
        }
コード例 #26
0
        private byte[] Register_internal(string str)
        {
            RegisterResponse response = new RegisterResponse()
            {
                error = RegisterError.REGISTER_SUCCESS
            };

            bool genNew = true;

            do
            {
                if (genNew)
                {
                    response.id = GenRandomString();
                    genNew      = false;
                }

                foreach (Client check in clients)
                {
                    if (check.Id == response.id)
                    {
                        genNew = true;
                    }
                }
            }while (genNew);


            Client newCl = new Client(response.id, str);

            // generate random number of money! :)
            newCl.Account = randDevice.Next(0, 4096);

            clients.Add(newCl);

            return(CreateMessage(ServerProtocol.svc_register, response.SerializeToByteArray()));
        }
コード例 #27
0
ファイル: MemeberShipService.cs プロジェクト: Stift/u2flib
        public bool CompleteRegistration(string userName, string deviceResponse)
        {
            if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(deviceResponse))
            {
                return(false);
            }

            RegisterResponse registerResponse = RegisterResponse.FromJson(deviceResponse);

            var user = _userRepository.FindUser(userName);

            if (user == null || user.AuthenticationRequest == null)
            {
                return(false);
            }

            StartedRegistration startedRegistration = new StartedRegistration(user.AuthenticationRequest.Challenge, user.AuthenticationRequest.AppId);
            DeviceRegistration  registration        = U2F.FinishRegistration(startedRegistration, registerResponse);

            _userRepository.RemoveUsersAuthenticationRequest(userName);
            _userRepository.AddDeviceRegistration(userName, registration.AttestationCert, registration.Counter, registration.KeyHandle, registration.PublicKey);

            return(true);
        }
コード例 #28
0
        public async Task <IActionResult> Register([FromBody] RegisterEntity model)
        {
            if (ModelState.IsValid)
            {
                var user   = Utils.MapperApplicationUserToUserDataResponse(model);
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    var token = AuthenticationHelper.GenerateJwtToken(model.Email, user, _configuration);

                    var rootData = new RegisterResponse(token, user.UserName, user.Email);
                    return(Created("user/register", rootData));
                }
                return(BadRequest(result.Errors.ReturnErrorDetailsHandlingIdentityErrors()));
            }
            return(BadRequest(new ErrorDetails()
            {
                Message = Startup.StaticConfig["MessagesError:MissingFields"],
                ErrorCode = Convert.ToInt32(Startup.StaticConfig["MessagesError:MissingFieldsErrorCode"])
            }));
        }
コード例 #29
0
ファイル: Auth.cs プロジェクト: khaliyo/DiscuzNT
        /// <summary>
        /// 注册用户
        /// </summary>
        /// <returns></returns>
        public string Register()
        {
            string returnStr = string.Empty;

            if (Signature != GetParam("sig").ToString())
            {
                ErrorCode = (int)ErrorType.API_EC_SIGNATURE;
                return returnStr;
            }

            if (CallId <= LastCallId)
            {
                ErrorCode = (int)ErrorType.API_EC_CALLID;
                return returnStr;
            }

            if (!CheckRequiredParams("user_name,password,email"))
            {
                ErrorCode = (int)ErrorType.API_EC_PARAM;
                return returnStr;
            }

            if (this.App.ApplicationType == (int)ApplicationType.DESKTOP)//如果是桌面程序则不允许此方法
            {
                if (Uid < 1 || Discuz.Forum.UserGroups.GetUserGroupInfo(Discuz.Forum.Users.GetShortUserInfo(Uid).Groupid).Radminid != 1)
                {
                    ErrorCode = (int)ErrorType.API_EC_PERMISSION_DENIED;
                    return "";
                }
            }
            else if (Uid > 0)//已经登录的用户不能再注册
            {
                ErrorCode = (int)ErrorType.API_EC_USER_ONLINE;
                return returnStr;
            }

            string username = GetParam("user_name").ToString();
            string password = GetParam("password").ToString();
            string email = GetParam("email").ToString();

            bool isMD5Passwd = GetParam("password_format") != null && GetParam("password_format").ToString() == "md5" ? true : false;

            //用户名不符合规范
            if (!CheckUsername(username))
            {
                ErrorCode = (int)ErrorType.API_EC_USERNAME_ILLEGAL;
                return returnStr;
            }

            if (Discuz.Forum.Users.GetUserId(username) != 0)//如果用户名符合注册规则, 则判断是否已存在
            {
                ErrorCode = (int)ErrorType.API_EC_USER_ALREADY_EXIST;
                return returnStr;
            }

            if (!isMD5Passwd && password.Length < 6)
            {
                ErrorCode = (int)ErrorType.API_EC_PARAM;
                return returnStr;
            }

            if (!CheckEmail(email))
            {
                ErrorCode = (int)ErrorType.API_EC_EMAIL;
                return returnStr;
            }

            UserInfo userInfo = new UserInfo();
            userInfo.Username = username;
            userInfo.Nickname = string.Empty;
            userInfo.Password = isMD5Passwd ? password : Utils.MD5(password);
            userInfo.Secques = string.Empty;
            userInfo.Gender = 0;
            userInfo.Adminid = 0;
            userInfo.Groupexpiry = 0;
            userInfo.Extgroupids = "";
            userInfo.Regip = DNTRequest.GetIP();
            userInfo.Joindate = Utils.GetDateTime();
            userInfo.Lastip = DNTRequest.GetIP();
            userInfo.Lastvisit = Utils.GetDateTime();
            userInfo.Lastactivity = Utils.GetDateTime();
            userInfo.Lastpost = Utils.GetDateTime();
            userInfo.Lastpostid = 0;
            userInfo.Lastposttitle = "";
            userInfo.Posts = 0;
            userInfo.Digestposts = 0;
            userInfo.Oltime = 0;
            userInfo.Pageviews = 0;
            userInfo.Credits = 0;
            userInfo.Extcredits1 = Scoresets.GetScoreSet(1).Init;
            userInfo.Extcredits2 = Scoresets.GetScoreSet(2).Init;
            userInfo.Extcredits3 = Scoresets.GetScoreSet(3).Init;
            userInfo.Extcredits4 = Scoresets.GetScoreSet(4).Init;
            userInfo.Extcredits5 = Scoresets.GetScoreSet(5).Init;
            userInfo.Extcredits6 = Scoresets.GetScoreSet(6).Init;
            userInfo.Extcredits7 = Scoresets.GetScoreSet(7).Init;
            userInfo.Extcredits8 = Scoresets.GetScoreSet(8).Init;
            userInfo.Email = email;
            userInfo.Bday = string.Empty;
            userInfo.Sigstatus = 0;

            userInfo.Tpp = 0;
            userInfo.Ppp = 0;
            userInfo.Templateid = 0;
            userInfo.Pmsound = 0;
            userInfo.Showemail = 0;
            userInfo.Salt = "0";
            int receivepmsetting = Config.Regadvance == 0 ? 7 : 1;
            userInfo.Newsletter = (ReceivePMSettingType)receivepmsetting;
            userInfo.Invisible = 0;
            userInfo.Newpm = Config.Welcomemsg == 1 ? 1 : 0;
            userInfo.Medals = "";
            userInfo.Accessmasks = 0;
            userInfo.Website = string.Empty;
            userInfo.Icq = string.Empty;
            userInfo.Qq = string.Empty;
            userInfo.Yahoo = string.Empty;
            userInfo.Msn = string.Empty;
            userInfo.Skype = string.Empty;
            userInfo.Location = string.Empty;
            userInfo.Customstatus = string.Empty;
            userInfo.Bio = string.Empty;
            userInfo.Signature = string.Empty;
            userInfo.Sightml = string.Empty;
            userInfo.Authtime = Utils.GetDateTime();

            //邮箱激活链接验证
            if (Config.Regverify == 1)
            {
                userInfo.Authstr = ForumUtils.CreateAuthStr(20);
                userInfo.Authflag = 1;
                userInfo.Groupid = 8;
                Emails.DiscuzSmtpMail(username, email, string.Empty, userInfo.Authstr);
            }
            //系统管理员进行后台验证
            else if (Config.Regverify == 2)
            {
                userInfo.Authstr = string.Empty;
                userInfo.Groupid = 8;
                userInfo.Authflag = 1;
            }
            else
            {
                userInfo.Authstr = "";
                userInfo.Authflag = 0;
                userInfo.Groupid = UserCredits.GetCreditsUserGroupId(0).Groupid;
            }
            userInfo.Realname = string.Empty;
            userInfo.Idcard = string.Empty;
            userInfo.Mobile = string.Empty;
            userInfo.Phone = string.Empty;

            if (Config.Passwordmode > 1 && PasswordModeProvider.GetInstance() != null)
            {
                userInfo.Uid = PasswordModeProvider.GetInstance().CreateUserInfo(userInfo);
            }
            else
            {
                userInfo.Uid = Discuz.Forum.Users.CreateUser(userInfo);
            }

            if (Config.Welcomemsg == 1)
            {
                PrivateMessageInfo privatemessageinfo = new PrivateMessageInfo();
                // 收件箱
                privatemessageinfo.Message = Config.Welcomemsgtxt;
                privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)";
                privatemessageinfo.Msgto = userInfo.Username;
                privatemessageinfo.Msgtoid = userInfo.Uid;
                privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName;
                privatemessageinfo.Msgfromid = 0;
                privatemessageinfo.New = 1;
                privatemessageinfo.Postdatetime = Utils.GetDateTime();
                privatemessageinfo.Folder = 0;
                PrivateMessages.CreatePrivateMessage(privatemessageinfo, 0);
            }

            Statistics.ReSetStatisticsCache();

            //信息同步通知不会发向当前请求接口的应用程序,所以此处应保留,以支持论坛向其他关联应用程序发送通知
            Sync.UserRegister(userInfo.Uid, userInfo.Username, userInfo.Password, ApiKey);

            UserCredits.UpdateUserCredits(userInfo.Uid);

            if (Format == FormatType.JSON)
                return string.Format("\"{0}\"", userInfo.Uid);

            RegisterResponse rr = new RegisterResponse();
            rr.Uid = userInfo.Uid;

            return SerializationHelper.Serialize(rr);
        }
コード例 #30
0
ファイル: LoginService.cs プロジェクト: varunupcurve/myrepo
        public RegisterResponse RegisterSocial(string sessionId, string socialAccountId, string socialAccountType,
                                               string email, string firstName, string lastName, string mobile,
                                               string ipAddress)
        {
            var response = new RegisterResponse();
            using (new ApplicationContextScope(new ApplicationContext()))
            {
                ApplicationContext.SetSessionId(sessionId);

                try
                {
                    bool accountExists;
                    string authId;
                    bool isCaptchaValid;
                    IAccountProvider accountProvider = AccountProviderFactory.GetAccountProvider();

                    if (accountProvider.RegisterSocial(socialAccountId, socialAccountType, email, firstName, lastName,
                                                       mobile, ipAddress,
                                                       out authId, out accountExists))
                    {
                        response.FirstName = firstName;
                        response.IsSuccess = true;
                        response.AuthenticationId = authId;
                        response.IsEnabled = true;
                    }
                    else if (accountExists)
                    {
                        response.ErrorMessage = email +
                                                " username already exists. Please login or click forgot password to reset the password.";
                    }
                }
                catch (Exception exception)
                {
                    response.ErrorMessage = "Something is not quite right here. Please try again later.";
                    Logger.LogException(exception, Source, "Register", Severity.Critical);
                }
            }
            return response;
        }
コード例 #31
0
 public void Present(RegisterResponse response)
 {
     _authenticationService.SetToken(response.Token);
 }
コード例 #32
0
        protected override string ReceivedRegister(Register register, IPAddress senderAddr)
        {
            string type = register.Type;
            Node   newNode;
            ulong  ID = RegisteredNodes.NextNodeID;

            switch (Utilities.NodeTypeForName(type))
            {
            case NodeType.TaskManager:
                newNode = new TaskManager();
                if (senderAddr != null)
                {
                    newNode.IP = senderAddr;
                }
                newNode.NodeType = Nodes.NodeType.TaskManager;
                newNode.ID       = register.Id;
                this.RegisteredComponents.RegisterTaskManager(newNode);
                break;

            case NodeType.ComputationalNode:
                newNode    = new ComputationalNode();
                newNode.ID = register.Id;
                if (senderAddr != null)
                {
                    newNode.IP = senderAddr;
                }
                newNode.NodeType = Nodes.NodeType.ComputationalNode;
                this.RegisteredComponents.RegisterComputationalNode(newNode);
                break;

            case NodeType.Server:
                newNode    = new Server();
                newNode.ID = ID;
                BackupServerQueue bsq = new BackupServerQueue {
                    backupServerId = ID,
                    messages       = new Queue <string>()
                };
                if (senderAddr != null)
                {
                    newNode.IP = senderAddr;
                }
                newNode.NodeType = Nodes.NodeType.Server;
                this.backupServerQueues.Add(bsq);
                this.RegisteredComponents.RegisterBackupServer(newNode);
                this.backupServerQueues.Add(bsq);
                break;

            case NodeType.Client:     //not needed!
                break;

            default:
                break;
            }

            //Register message is sent by TM, CN and Backup CS to the CS after they are activated.
            RegisterResponse response = new RegisterResponse();

            response.Id      = ID;
            response.Timeout = this.Timeout;
            List <RegisterResponseBackupCommunicationServersBackupCommunicationServer> backupServers = new List <RegisterResponseBackupCommunicationServersBackupCommunicationServer>();

            foreach (Node comp in this.RegisteredComponents.BackupServers)
            {
                RegisterResponseBackupCommunicationServersBackupCommunicationServer backup = new RegisterResponseBackupCommunicationServersBackupCommunicationServer();
                if (comp.IP == null)
                {
                    break;
                }
                backup.address = comp.IP.ToString();
                if (comp.Port > 0)
                {
                    backup.port          = comp.Port;
                    backup.portSpecified = true;
                }
                backupServers.Add(backup);
            }

            response.BackupCommunicationServers = backupServers.ToArray();
            if (!this.BackupMode)
            {
                Console.WriteLine("Sending RegisterResponse");
            }
            return(response.SerializeToXML());
        }
コード例 #33
0
 public static void Log(this RegisterResponse registerResponse)
 {
     Console.WriteLine(registerResponse.GetType());
     Console.WriteLine(registerResponse.ShipName);
     Console.WriteLine();
 }
コード例 #34
0
 protected bool Equals(RegisterResponse other)
 {
     return string.Equals(RegistrationData, other.RegistrationData) && string.Equals(Bd, other.Bd) &&
            string.Equals(SessionId, other.SessionId);
 }
コード例 #35
0
        static async Task Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            List <Task> tasks = new List <Task>();

            for (int j = 0; j < ClientCount; j++)
            {
                Task clientTask = Task.Run(async() =>
                {
                    IMessageProcessor messageProcessor      = new ClientMessageProcessor();
                    IMessageSerializer messageSerializer    = new JsonMessageSerializer();
                    SslTcpNetworkConnector networkConnector = new SslTcpNetworkConnector(messageSerializer, messageProcessor, Host, Port);
                    await networkConnector.ConnectAsync(CancellationToken.None);
                    await networkConnector.AuthenticateAsClient(CancellationToken.None);
                    networkConnector.Start();

                    MessageListener <AuthenticateResponse> loginResponseListener = new MessageListener <AuthenticateResponse>();
                    MessageListener <RegisterResponse> registerMessageListener   = new MessageListener <RegisterResponse>();
                    MessageListener <CreateTrainingRoomResponse> createTrainingRoomResponseListener           = new MessageListener <CreateTrainingRoomResponse>();
                    MessageListener <GetEnabledTrainingRoomsResponse> getEnabledTrainingRoomsResponseListener = new MessageListener <GetEnabledTrainingRoomsResponse>();
                    MessageListener <StartTrainingSessionResponse> startTrainingSessionResponseListener       = new MessageListener <StartTrainingSessionResponse>();
                    MessageListener <GetOrganismsResponse> getOrganismsResponseListener             = new MessageListener <GetOrganismsResponse>();
                    MessageListener <PostOrganismsScoreResponse> postOrganismsScoreResponseListener = new MessageListener <PostOrganismsScoreResponse>();
                    loginResponseListener.Subscribe(messageProcessor);
                    createTrainingRoomResponseListener.Subscribe(messageProcessor);
                    registerMessageListener.Subscribe(messageProcessor);
                    getEnabledTrainingRoomsResponseListener.Subscribe(messageProcessor);
                    startTrainingSessionResponseListener.Subscribe(messageProcessor);
                    getOrganismsResponseListener.Subscribe(messageProcessor);
                    postOrganismsScoreResponseListener.Subscribe(messageProcessor);
                    for (int i = 0; i < MessageCount; i++)
                    {
                        Guid name = Guid.NewGuid();
                        RegisterRequest registerRequest = new RegisterRequest(name.ToString(), "password2", "Name2");
                        await networkConnector.SendMessageAsync(registerRequest, CancellationToken.None);
                        RegisterResponse registerResponse = await registerMessageListener.ReceiveMessageAsync(CancellationToken.None);
                        Console.WriteLine($"RegisterResponse: \n\tSuccess: {registerResponse.Success}, \n\tRequestId: {registerResponse.RequestId}, \n\tResponseId: {registerResponse.Id}, \n\tMessage:{registerResponse.Message}");

                        AuthenticateRequest loginRequest = new AuthenticateRequest(name.ToString(), "password2", "Name2");
                        await networkConnector.SendMessageAsync(loginRequest, CancellationToken.None);
                        AuthenticateResponse loginResponse = await loginResponseListener.ReceiveMessageAsync(CancellationToken.None);
                        Console.WriteLine($"AuthenticateResponse: \n\tSuccess: {loginResponse.Success}, \n\tAccessToken: {loginResponse.AccessToken}, \n\tRequestId: {loginResponse.RequestId}, \n\tResponseId: {loginResponse.Id}, \n\tMessage:{loginResponse.Message}");

                        TrainingRoomSettings trainingRoomSettings           = new TrainingRoomSettings(50, 2, 1, 1, 1, 0.4, 3, 0.05, 0.03, 0.75, 0.001, 1, 0.8, 0.1, 0.5, 0.25, 0);
                        CreateTrainingRoomRequest createTrainingRoomRequest = new CreateTrainingRoomRequest(loginResponse.UserId, Guid.NewGuid().ToString(), trainingRoomSettings);
                        await networkConnector.SendMessageAsync(createTrainingRoomRequest, CancellationToken.None);
                        CreateTrainingRoomResponse createTrainingRoomResponse = await createTrainingRoomResponseListener.ReceiveMessageAsync(CancellationToken.None);
                        Console.WriteLine($"CreateTrainingRoomResponse: \n\tId: {createTrainingRoomResponse.Id}\n\tRequestId: {createTrainingRoomResponse.RequestId}\n\tDateTime: {createTrainingRoomResponse.DateTime}\n\tMessage: {createTrainingRoomResponse.Message}\n\tSuccess: {createTrainingRoomResponse.Success}\n\tTrainingRoomId: {createTrainingRoomResponse.TrainingRoomId}");

                        StartTrainingSessionRequest startTrainingSessionRequest = new StartTrainingSessionRequest(loginResponse.UserId, createTrainingRoomResponse.TrainingRoomId);
                        await networkConnector.SendMessageAsync(startTrainingSessionRequest, CancellationToken.None);
                        StartTrainingSessionResponse startTrainingSessionResponse = await startTrainingSessionResponseListener.ReceiveMessageAsync(CancellationToken.None);
                        Console.WriteLine($"StartTrainingSessionResponse: \n\tId: {startTrainingSessionResponse.Id}\n\tRequestId: {startTrainingSessionResponse.RequestId}\n\tDateTime: {startTrainingSessionResponse.DateTime}\n\tMessage: {startTrainingSessionResponse.Message}\n\tSuccess: {startTrainingSessionResponse.Success}\n\tTrainingSessionId: {startTrainingSessionResponse.TrainingSession.Id}");

                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);
                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);
                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);
                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);
                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);

                        //
                        await GetAndPostOrganismsAsync(startTrainingSessionResponse, networkConnector, getOrganismsResponseListener, postOrganismsScoreResponseListener);

                        //GetEnabledTrainingRoomsRequest getEnabledTrainingRoomsRequest = new GetEnabledTrainingRoomsRequest();
                        //await networkConnector.SendMessageAsync(getEnabledTrainingRoomsRequest, CancellationToken.None);
                        //GetEnabledTrainingRoomsResponse getEnabledTrainingRoomsResponse = await getEnabledTrainingRoomsResponseListener.ReceiveMessageAsync(CancellationToken.None);
                        //Console.WriteLine($"GetEnabledTrainingRoomsResponse: \n\tId: {getEnabledTrainingRoomsResponse.Id}\n\tRequestId: {getEnabledTrainingRoomsResponse.RequestId}\n\tDateTime: {getEnabledTrainingRoomsResponse.DateTime}\n\tMessage: {getEnabledTrainingRoomsResponse.Message}\n\tSuccess: {getEnabledTrainingRoomsResponse.Success}");


                        //foreach (TrainingRoomDto trainingRoomDto in getEnabledTrainingRoomsResponse.TrainingRooms)
                        //    Console.WriteLine($"TrainingRoom:\n\tId: {trainingRoomDto.Id}\n\tName: {trainingRoomDto.Name}\n\tOwner: {trainingRoomDto.Owner.Username}");
                    }
                    loginResponseListener.Unsubscribe();
                });
                tasks.Add(clientTask);
            }

            await Task.WhenAll(tasks).ContinueWith(action =>
            {
                stopwatch.Stop();
                Console.WriteLine($"Messages per second: {TotalMessages / stopwatch.Elapsed.TotalSeconds:N0}");
                Console.ReadKey();
            });
        }
コード例 #36
0
        public RegisterResponse Register([FromBody]RegisterRequest request)
        {
            try
            {
                if (_playerRepo.Exists(x => x.Email.ToLowerInvariant() == request.Email.ToLowerInvariant()))
                {
                    return new RegisterResponse() { ErrorCode = 1, ErrorMessage = "Die Email wurde bereits verwendet." };
                }

                var player = new Player();

                player.Email = request.Email;
                player.HomeAddress = request.HomeAddress;
                player.WorkAddress = request.WorkAddress;
                player.Phone = request.Phone;
                player.Email = request.Email;
                player.PasswordHash = GetMd5Hash(request.Password);

                var image = Convert.FromBase64String(request.ImageBase64);

                player.Image = ImageToByteArray(Resize(ByteArrayToImage(image), 279));

                player.Nickname = request.Nickname;

                InitPlayer(player);

                player.LocationHistory = new List<PlayerLocation>();

                // insert player
                _playerRepo.Update(player);

                AssignVictim(player);

                RegisterResponse response = new RegisterResponse();

                response.Player = _playerRepo.GetById(player.Id);
                response.Hunter = response.Player.HunterId == null ? null : _playerRepo.GetById(response.Player.HunterId);
                response.Victim = response.Player.VictimId == null ? null : _playerRepo.GetById(response.Player.VictimId);

                return response;
            }
            catch (Exception ex)
            {
                return new RegisterResponse() { ErrorCode = 2, ErrorMessage = ex.Message };
            }
        }