예제 #1
0
 private void Application_Startup(object sender, StartupEventArgs e)
 {
     //init sdk
     {
         ZOOM_SDK_DOTNET_WRAP.InitParam param = new ZOOM_SDK_DOTNET_WRAP.InitParam();
         param.web_domain = "https://zoom.us";
         ZOOM_SDK_DOTNET_WRAP.SDKError err = ZOOM_SDK_DOTNET_WRAP.CZoomSDKeDotNetWrap.Instance.Initialize(param);
         if (ZOOM_SDK_DOTNET_WRAP.SDKError.SDKERR_SUCCESS == err)
         {
             //register callbacks
             CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onAuthenticationReturn(onAuthenticationReturn);
             CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onLoginRet(onLoginRet);
             CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().Add_CB_onLogout(onLogout);
             AuthParam authParam = new AuthParam
             {
                 appKey    = ConfigurationManager.AppSettings.Get("appKey"),
                 appSecret = ConfigurationManager.AppSettings.Get("appSecret")
             };
             var sdkError = ZOOM_SDK_DOTNET_WRAP.CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().SDKAuth(authParam);
             if (sdkError != SDKError.SDKERR_SUCCESS)
             {
                 MessageBox.Show("Failed to connect: " + sdkError.ToString());
                 Current.Shutdown();
             }
         }
         else
         {
             MessageBox.Show("Failed to initialise: " + err.ToString());
             Current.Shutdown();
         }
     }
 }
        public async Task <TokenDTO> GetToken(AuthParam login)
        {
            var user = new UsuarioEntity
            {
                Login = login.Login,
                Senha = login.Senha
            };
            var retorno = new TokenDTO
            {
                Authenticated  = false,
                CreationDate   = null,
                ExpirationDate = null,
                Message        = "Authentication Failure."
            };
            var retornoRepo = await _usuariosRepository.GetUsuarioByLoginSenha(user);

            if (retornoRepo != null)
            {
                retorno.Authenticated  = true;
                retorno.AccessToken    = GerarJwt(retornoRepo);
                retorno.CreationDate   = DateTime.Now;
                retorno.ExpirationDate = DateTime.Now.AddHours(Convert.ToInt32(_appSettings.ExpirationHours));
                retorno.Message        = "OK";
            }

            return(retorno);
        }
예제 #3
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            //init sdk
            {
                ZOOM_SDK_DOTNET_WRAP.InitParam param = new ZOOM_SDK_DOTNET_WRAP.InitParam();
                param.web_domain = "https://jworg.zoom.us";
                ZOOM_SDK_DOTNET_WRAP.SDKError err = CZoomSDKeDotNetWrap.Instance.Initialize(param);
                if (SDKError.SDKERR_SUCCESS == err)
                {
                    Console.WriteLine("SDK loaded");

                    var key        = ConfigurationManager.AppSettings["zoomkey"];
                    var secret     = ConfigurationManager.AppSettings["zoomsecret"];
                    var authparams = new AuthParam()
                    {
                        appKey    = key,
                        appSecret = secret
                    };

                    ZOOM_SDK_DOTNET_WRAP.SDKError autherr = CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().SDKAuth(authparams);

                    if (autherr == SDKError.SDKERR_SUCCESS)
                    {
                        Console.WriteLine("APi auth success");
                    }
                }
                else//error handle.todo
                {
                    Console.WriteLine(err);
                    Console.WriteLine("Sdk loading failed");
                }
            }
        }
        public async void GetToken_test_InternalServerError()
        {
            //Given(Preparação)
            var mocker             = new AutoMoqer();
            var baseControllerMock = mocker.Create <AuthController>();

            var faker = AutoFaker.Create();

            var param = new AuthParam()
            {
                Login = "******", Senha = "123456"
            };

            var response = faker.Generate <TokenDTO>();

            response.Authenticated = false;

            var responseTask = new Exception();

            var expectResponse = baseControllerMock.StatusCode(500);

            var service = mocker.GetMock <IAuthService>();

            service.Setup(r => r.GetToken(param)).ThrowsAsync(responseTask).Verifiable();

            //When
            var result = await baseControllerMock.GetToken(param);

            //Then
            //var comparison = new CompareLogic();
            service.Verify(mock => mock.GetToken(param), Times.Once());
            Assert.True(((ObjectResult)result).StatusCode == expectResponse.StatusCode);
        }
        public async void GetToken_test_Unauthorized()
        {
            //Given(Preparação)
            var mocker             = new AutoMoqer();
            var baseControllerMock = mocker.Create <AuthController>();

            var faker = AutoFaker.Create();

            var param = new AuthParam()
            {
                Login = "******", Senha = "123456"
            };

            var response = faker.Generate <TokenDTO>();

            response.Authenticated = false;

            var responseTask = Task.Factory.StartNew(() => response);

            var expectResponse = baseControllerMock.Unauthorized(response);

            var service = mocker.GetMock <IAuthService>();

            service.Setup(r => r.GetToken(param)).Returns(responseTask).Verifiable();

            //When
            var result = await baseControllerMock.GetToken(param);

            //Then
            var comparison = new CompareLogic();

            service.Verify(mock => mock.GetToken(param), Times.Once());
            Assert.True(comparison.Compare(result, expectResponse).AreEqual);
        }
예제 #6
0
 public async Task <AuthResponse> Authenticate(AuthParam param)
 {
     return(await _requestProvider.BuildUpon(_url)
            .Uri("/api/auth")
            .Method(HttpMethod.Post)
            .Content(new JsonContent(param))
            .AddInterceptor(new JsonDeserializerInterceptor())
            .Execute <AuthResponse>());
 }
        public IActionResult RoleModularFunctionAuthList(AuthParam param)
        {
            //判断是否传入id
            if (param.rolemid.IsNullOrEmpty() || param.modularid.IsNullOrEmpty())
            {
                return(Json(new ResponseModel(ResponseCode.Error, "数据异常")));
            }
            //模块接口
            var role = this.GetInstance <IRoles>();
            //查询角色所有模块的功能授权
            var result = role.RoleFunctionAuthorization(param.rolemid, param.modularid)?.Result;

            return(Json(new ResponseModel(ResponseCode.Success, "查询成功!", result)));
        }
        public async Task <IActionResult> GetToken([FromBody] AuthParam login)
        {
            try
            {
                var result = await _authService.GetToken(login);

                if (!result.Authenticated)
                {
                    return(Unauthorized(result));
                }
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
예제 #9
0
        public async Task <IActionResult> GetToken([FromBody] AuthParam login)
        {
            try
            {
                var result = await _authService.GetToken(login);

                if (!result.Authenticated)
                {
                    return(Unauthorized(result));
                }
                return(Ok(result));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
예제 #10
0
        public SDKError SDKAuth(AuthParam authParam)
        {
            SDKError err = CZoomSDKeDotNetWrap.Instance.GetAuthServiceWrap().SDKAuth(authParam);

            return(err);
        }
예제 #11
0
 public async Task <AuthResponse> Authenticate(AuthParam param)
 {
     return(await Execute(new AuthenticateCommand(param, _cacheProvider)));
 }
예제 #12
0
 public async Task <AuthResponse> Post([FromBody] AuthParam param)
 {
     return(await _authService.Authenticate(param));
 }
예제 #13
0
        public AuthenticateCommand(AuthParam param, ICacheProvider cacheProvider)
        {
            _param = param;

            _cacheProvider = cacheProvider;
        }
예제 #14
0
        /// <summary>
        /// 顔認証リクエスト
        /// </summary>
        /// <param name="jpeg">顔画像のJPEGデータ</param>
        /// <param name="userID">
        /// 顔認証対象者ID
        /// 指定あり: 1:1認証
        /// null: 1:N認証
        /// </param>
        /// <returns>顔認証結果</returns>
        public static async Task <AuthResult> Auth(byte[] jpeg, string userID = null)
        {
            var result = new AuthResult
            {
                ResultStatus = ResultStatus.Failed
            };

            var param = new AuthParam
            {
                ParamSetID  = "auth_30_02_0056",   // 1:N 閾値:中
                QueryImages = new string[] { ToBase64(jpeg) },
            };

            if (userID != null)
            {
                param.UserID     = userID;
                param.ParamSetID = "auth_30_01_0050";    // 1:1 userId指定 閾値:中
            }

            var json = JsonConvert.SerializeObject(param);

            using (var content = CreateJsonContent(json))
            {
                content.Headers.Add("apiKey", AuthApiKey);
                using (var response = await client.PostAsync(NfcAuthUri, content))
                {
                    string resultJson = await response.Content.ReadAsStringAsync();

                    DumpResult(response, resultJson, json);
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        result = JsonConvert.DeserializeObject <AuthResult>(resultJson);
                        switch (result.StatusCode)
                        {
                        case 200:
                            result.ResultStatus = ResultStatus.Success;
                            break;

                        case 404:
                            result.ResultStatus = ResultStatus.IDUnregistered;
                            break;

                        case 424:
                            result.ResultStatus = ResultStatus.FaceUnregistered;
                            break;

                        case 434:
                            result.ResultStatus = ResultStatus.NotFoundFace;
                            break;

                        case 435:
                            result.ResultStatus = ResultStatus.MultiFacesDetected;
                            break;

                        case 436:
                            result.ResultStatus = ResultStatus.FaceCheckInvalid;
                            break;

                        case 443:
                            result.ResultStatus = ResultStatus.NotAvailableFeature;
                            break;

                        case 444:
                            result.ResultStatus = ResultStatus.NotApplicable;
                            break;

                        case 445:
                            result.ResultStatus = ResultStatus.NotMatched;
                            break;
                        }
                    }
                }
            }
            return(result);
        }
예제 #15
0
        public async Task <ResultObject> Login([FromBody] AuthParam authParam)
        {
            var branch = await branchAppService.GetBranchByBranchCodeAsync(authParam.BranchCode);

            ResultObject resultObject = new ResultObject();

            if (branch == null)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotFoundBranch, Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }

            var userDto = await userAppService.FindUser(authParam.UserName, authParam.Password, branch.ID);

            if (userDto == null)
            {
                resultObject.Result = userDto;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotuserFound
                });
                return(resultObject);
            }
            AttachmentFilterDto filter = new AttachmentFilterDto()
            {
                UserID     = userDto.ID,
                CategoryID = ConstAttachmentTypeCategory.User,
                pageNumber = 1
            };
            var userAttachments = await uploadAppService.GetAllAttachmentsAsync(filter);

            userDto.PicturePath = ((IEnumerable <AttachmentDto>)(userAttachments.Results))?.FirstOrDefault()?.Path;


            if (userDto.IsActive == false)
            {
                resultObject.Result = userDto;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.UserNotEnable
                });
                return(resultObject);
            }
            else if (userDto.UserBranch == null)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = ErrorMessages.NotAccessbranch, Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }
            else if (!userDto.UserBranch.Branch.IsActive)
            {
                resultObject.Result = null;
                resultObject.ServerErrors.Add(new ServerErr()
                {
                    Hint = "شعبه فعال نمی باشد.", Type = ConstErrorTypes.BussinessError
                });
                return(resultObject);
            }
            if (userDto != null)
            {
                userDto.Token = JwtAuthManager.GenerateJWTToken(username: authParam.UserName, userID: userDto.ID);
                if (userDto.IsRequireChangePass)
                {
                    var changePassActivity = new ActivityDto()
                    {
                        Id          = ConstActivities.changePassword,
                        ParentId    = 2,
                        Name        = "changePassword",
                        Title       = "تغییر رمز",
                        Path        = "/mp/changePassword",
                        IsMenu      = true,
                        IsActive    = true,
                        IconClass   = "key",
                        Description = "شما ملزم به تغییر رمز عبور می باشید. لطفا رمز عبور را تغییر داده و دوباره به سیستم وارد شوید."
                    };
                    userDto.ActivityDtos.Add(changePassActivity);
                }
                else
                {
                    userDto.ActivityDtos = await accessControl.GetActivitiesAsync(userDto.ID, userDto.UserBranch.BranchId, userDto.IsRequireChangePass);
                }
            }

            //notificationAppService.SendMessage($"کاربر {userDto.UserName} {Environment.NewLine} ورود شما در تاریخ {DateConvertor.Instance.ConvertGregorianToPersianDate(DateTime.Now)} در سامانه صندوق های خرد محلی {userDto.UserBranch.BranchName} ثبت گردید ",
            //    userDto.PhoneNumber);



            return(new ResultObject {
                Result = userDto, ServerErrors = null
            });
        }
예제 #16
0
 public async Task <AuthResponse> Authenticate(AuthParam param)
 {
     return(await _apiClient.AuthSdk.Authenticate(param));
 }