/// <summary>
        /// 토큰 생성
        /// </summary>
        private string CreateToken(SignViewModel model)
        {
            //[1] 보안키 생성
            var key         = _configuration.GetSection("SymmetricSecurityKey").Value;
            var securityKey =
                new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
            var signingCredentials =
                new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            //[2] 클레임 생성
            var claims = new Claim[]
            {
                new Claim(JwtRegisteredClaimNames.Sub, model.Email)
            };

            //[3] 토큰 생성하기
            var token = new JwtSecurityToken(
                claims: claims,
                signingCredentials: signingCredentials,
                expires: DateTime.Now.AddMinutes(5));
            var t = new JwtSecurityTokenHandler().WriteToken(token);

            //[!] 토큰 반환
            return(t);
        }
        ///// <summary>
        ///// 签到
        ///// </summary>
        ///// <param name="userId">当前玩家</param>
        ///// <returns></returns>
        public List <SignViewModel> Sign(int userId, int p)
        {
            //@userid int,
            //@p int,                       --0-获取;1-签到
            //@num int out,                 --连续签到天数
            //@signHistory varchar(500) out --当月签到记录
            SqlParameter[] pms =
            {
                new SqlParameter("@userid",      SqlDbType.Int)
                {
                    Value = userId
                },
                new SqlParameter("@p",           SqlDbType.Int)
                {
                    Value = p
                },
                new SqlParameter("@num",         SqlDbType.Int),
                new SqlParameter("@signHistory", SqlDbType.NVarChar, 500),
            };
            pms[2].Direction = ParameterDirection.Output;
            pms[3].Direction = ParameterDirection.Output;

            var data        = dbSession.ExecuteQuery <SignViewModel>("exec sign @userid,@p,@num out,@signHistory out", pms).FirstOrDefault();
            var num         = (int)pms[2].Value;
            var signHistory = pms[3].Value.ToString();
            var result      = new SignViewModel()
            {
                Num = num, SignHistory = signHistory
            };
            List <SignViewModel> list = new List <SignViewModel>();

            list.Add(result);
            return(list);
        }
Esempio n. 3
0
        public async Task <ActionResult> Sign(string repoOwner, string repoName)
        {
            var repository = DataContext.Repositories.Where(repoOwner, repoName);

            if (repository == null)
            {
                ViewBag.NotConfigured = true;
            }
            else
            {
                ViewBag.LicenseText = repository.LicenseText;
            }

            var signature = DataContext.Signatures.Where(repoOwner, repoName, User.Identity);

            if (signature != null)
            {
                ViewBag.AlreadySigned = true;
            }

            //TODO: Fix signature when in disabled state

            var user = await GitHubService.GetUser(User.Identity.Name);

            var viewModel = new SignViewModel
            {
                FullName = user.Name, Email = user.EmailAddress, Date = DateTime.Now, RepoOwner = repoOwner, RepoName = repoName
            };

            return(View(viewModel));
        }
Esempio n. 4
0
        public SignBase AddSign(SignViewModel model)
        {
            // 실제 데이터베이스에 저장하는 코드 들어오는 곳

            return(new SignBase {
                SignId = 1, Email = model.Email, Password = model.Password
            });
        }
        public C1Rescponse Sign([FromBody] SignViewModel model)
        {
            Argument.Require(model != null, "Параметры не заданы.");
            FinanceDocument document = new FinanceDocument(model.DocumentBase64Data, model.DocumentName, model.DocumentMimeType);

            var response = c1Service.Sign(document, model.CertificateId, model.TextForUser);

            return(response);
        }
Esempio n. 6
0
        public async Task <ActionResult> Sign(SignViewModel model, string repoOwner, string repoName)
        {
            var repository = DataContext.Repositories.Where(repoOwner, repoName);

            ViewBag.LicenseText = repository.LicenseText;

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (repository == null) // can't save if the repo doesn't require CLA's
            {
                return(new RedirectResult(string.Format("/{0}/{1}/sign/", repoOwner, repoName)));
            }

            var redirectUrl = string.Format("/{0}/{1}/", repoOwner, repoName);

            var user = DataContext.Signatures.Where(repoOwner, repoName, User.Identity);

            if (user != null)// redirect user if they have already signed the CLA (CLA's can't be changed
            {
                TempData["userSigned"] = new UserSignedNotification("success", User.Identity.Name);
                return(new RedirectResult(redirectUrl));
            }

            DataContext.Signatures.Add(new Signature
            {
                Address         = model.Address,
                Country         = model.Country,
                DateSigned      = DateTime.Now,
                Email           = model.Email,
                FullName        = model.FullName,
                RepositoryId    = repository.Id,
                SignatureImage  = model.Signature,
                TelephoneNumber = model.TelephoneNumber,
                Username        = User.Identity.Name
            });

            DataContext.SaveChanges();

            var commitUpdates = await UpdateCommitsFor(repository, User.Identity.Name);

            await Task.WhenAll(commitUpdates.ToArray());

            // TODO: Setup/move validation to EF model?
            // TODO: Support ajax submit?
            // TODO: Wrap in a try/catch
            // TODO: Kill output cache

            Response.RemoveOutputCacheItem(redirectUrl);

            TempData["userSigned"] = new UserSignedNotification("success", User.Identity.Name);
            return(Redirect(redirectUrl));
        }
        public IActionResult Login([FromBody] SignViewModel model)
        {
            if (!IsLogin(model))
            {
                return(NotFound("이메일 또는 암호가 틀립니다."));
            }

            string t = CreateToken(model);

            //return Ok(new { Token = t });
            return(Ok(new SignDto {
                Token = t, Email = model.Email
            }));
        }
        public C1Rescponse Sign([FromBody] SignViewModel model)
        {
            Argument.Require(model != null, "Параметры не заданы.");
            FinanceDocument document = new FinanceDocument(model.DocumentBase64Data, model.DocumentName, model.DocumentMimeType);

            var response = c1Service.Sign(document, model.CertificateId, model.TextForUser);

            if (response.StatusCode >= STATUS_BAD_MIN)
            {
                return(new C1Rescponse <string>(response));
            }

            return(WaitTillResponse <string>(response.TransactionGuid));
        }
        public IActionResult Register([FromBody] SignViewModel model)
        {
            var sign = _repository.AddSign(model);

            if (sign == null)
            {
                return(NotFound("등록이되지 않았습니다."));
            }

            string t = CreateToken(model);

            return(Ok(new SignDto {
                SignId = sign.SignId, Token = t, Email = model.Email
            }));
        }
Esempio n. 10
0
        /// <summary>
        /// 保存用户活动模板信息Json
        /// </summary>
        /// <param name="signViewModel"></param>
        /// <returns></returns>
        public JsonResult SaveModelValueJson(SignViewModel signViewModel)
        {
            var result = "成功";

            try
            {
                if (!string.IsNullOrEmpty(signViewModel.modelValue))
                {
                    signViewModel.modelValue = HttpUtility.UrlDecode(signViewModel.modelValue);
                }

                _registService.PostModelValueSave(signViewModel);
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 11
0
 public bool IsAuthenticated(SignViewModel model)
 {
     return(true);
 }
        public MainWindow()
        {
            InitializeComponent();

            DataContext = _viewModel = new SignViewModel();
        }
 /// <summary>
 /// 로그인 처리: 이메일/암호가 맞으면 true 반환
 /// </summary>
 private bool IsLogin(SignViewModel model)
 {
     //return true; // 일단 무조건 통과
     return(_repository.IsAuthenticated(model));
 }
Esempio n. 14
0
 public void ClearSignVM()
 {
     //SignVM.Cleanup();
     signVM = null;
 }
Esempio n. 15
0
 //Dictionary<int, NavigationPage> MenuPages = new Dictionary<int, NavigationPage>();
 public SignPage()
 {
     InitializeComponent();
     BindingContext = new SignViewModel();
     //this.gridDescription.IsVisible = false;
 }