private async Task <SurveySecurityProfile> LogIn() { var securityProfile = new SurveySecurityProfile(UserName, config); if (securityProfile.Role == "NotAuthorized") { return(null); } string issuer = Environment.GetEnvironmentVariable("Domain"); Rep rep = repManager.Find(x => x.Username == securityProfile.UserName).SingleOrDefault(); var claims = new List <Claim> { new Claim("Username", securityProfile.UserName, ClaimValueTypes.String, issuer), new Claim(ClaimTypes.Role, securityProfile.Role, ClaimValueTypes.String, issuer), new Claim("RepId", Convert.ToString(rep?.RepId ?? 0), ClaimValueTypes.Integer), new Claim("UserType", Convert.ToString(securityProfile.UserType), ClaimValueTypes.Integer) }; var claimsIdentity = new ClaimsIdentity(claims, "SuperSecureLogin"); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), new AuthenticationProperties { ExpiresUtc = DateTime.UtcNow.AddMinutes(20), IsPersistent = false, AllowRefresh = false }); return(securityProfile); }
// GET: Account public IActionResult Index(string returnUrl = null) { SurveySecurityProfile securityProfile = LogIn().Result; return(Redirect(securityProfile == null ? "~/Home/Unauthorized/" : returnUrl)); }