/// <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); }
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)); }
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); }
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 })); }
/// <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)); }
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)); }
public void ClearSignVM() { //SignVM.Cleanup(); signVM = null; }
//Dictionary<int, NavigationPage> MenuPages = new Dictionary<int, NavigationPage>(); public SignPage() { InitializeComponent(); BindingContext = new SignViewModel(); //this.gridDescription.IsVisible = false; }