public async Task <ActionResult> Index(LoginViewModel model) //Login { if (!ModelState.IsValid) { return(View(model)); } var result = await repository.login(model); if (result.resultCode == 200 && !User.Identity.IsAuthenticated) { SessionAuthenticationModule sam = (SessionAuthenticationModule)this.HttpContext.ApplicationInstance.Modules["SessionAuthenticationModule"]; IClaimsPrincipal principal = new Microsoft.IdentityModel.Claims.ClaimsPrincipal(new GenericPrincipal(new GenericIdentity(model.Email), null)); List <User> user = new List <User>(); user.Add(new Models.User { Email = "*****@*****.**", Date = DateTime.Now }); user.Add(new Models.User { Email = "*****@*****.**", Date = DateTime.Now }); user.Add(new Models.User { Email = "*****@*****.**", Date = DateTime.Now }); user.Add(new Models.User { Email = "*****@*****.**", Date = DateTime.Now }); string dummy = JsonConvert.SerializeObject(user); principal.Identities[0].Claims.Add(new Microsoft.IdentityModel.Claims.Claim(Microsoft.IdentityModel.Claims.ClaimTypes.Email, model.Email)); principal.Identities[0].Claims.Add(new Microsoft.IdentityModel.Claims.Claim(Microsoft.IdentityModel.Claims.ClaimTypes.UserData, dummy)); principal.Identities[0].Claims.Add(new Microsoft.IdentityModel.Claims.Claim(Microsoft.IdentityModel.Claims.ClaimTypes.Role, "Admin")); principal.Identities[0].Claims.Add(new Microsoft.IdentityModel.Claims.Claim("custom", "freecodespot custom claims")); var token = sam.CreateSessionSecurityToken(principal, null, DateTime.Now, DateTime.Now.AddMinutes(20), false); sam.WriteSessionTokenToCookie(token); //FormsAuthentication.SetAuthCookie(model.Email, false); return(RedirectToAction("Index", "Home", result.Data)); //redirect to login form } else if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", result.message); } return(View()); }
private static void WriteCookie(AMSAdmin user, string timeOffsetValue) { SessionAuthenticationModule sam = (SessionAuthenticationModule) HttpContext.Current.ApplicationInstance.Modules["SessionAuthenticationModule"]; IClaimsPrincipal principal = new ClaimsPrincipal(new GenericPrincipal(new GenericIdentity(user.LogonName), null)); principal.Identities[0].Claims.Add(new Claim("TimeOffset", timeOffsetValue)); principal.Identities[0].Claims.Add(new Claim("AMSAdminID", user.UserID)); principal.Identities[0].Claims.Add(new Claim("AMSAdminName", user.Name)); SessionSecurityToken token = sam.CreateSessionSecurityToken(principal, null, DateTime.Now, DateTime.Now.AddMinutes(60), false); sam.WriteSessionTokenToCookie(token); }