public async Task <ActionResult> Was(string id) { IDictionary <string, object> env = Request.GetOwinContext().Environment; IdentityServer3.Core.Models.SignInMessage msg = env.GetSignInMessage(id); var userWindow = User.Identity as WindowsPrincipal; string returnUrl = msg.ReturnUrl; return(Redirect(returnUrl)); }
public async Task <ActionResult> Login(string id, LoginModel model) { if (ModelState.IsValid) { IDictionary <string, object> env = Request.GetOwinContext().Environment; AuthenticateDto authenticateResult = await _mediator.Send(new AuthenticateCommand { Domain = model.Domain, UserName = model.UserName, Password = model.Password }); if (authenticateResult.AccountStatus == Wdc.DirectoryLib.Types.AccountStatus.Success) { List <Claim> claims = new List <Claim>(); if (authenticateResult.User.JpegPhoto != null) { claims.Add(new Claim(Common.Constants.DtClaimTypes.UserImage, Convert.ToBase64String(authenticateResult.User.JpegPhoto))); } claims.Add(new Claim(IdentityServer3Constants.ClaimTypes.GivenName, $"{authenticateResult.User.DisplayName }")); claims.Add(new Claim(IdentityServer3Constants.ClaimTypes.Email, $"{ authenticateResult.User.UserPrincipalName}")); claims.Add(new Claim(DtClaimTypes.Department, $"{ authenticateResult.User.Department}")); env.IssueLoginCookie(new IdentityServer3.Core.Models.AuthenticatedLogin { AuthenticationMethod = CookieAuthenticationDefaults.AuthenticationType, Subject = authenticateResult.User.DisplayName, Name = authenticateResult.User.SamAccountName, Claims = claims, PersistentLogin = true }); ClaimsPrincipal user = (ClaimsPrincipal)User; IdentityServer3.Core.Models.SignInMessage msg = env.GetSignInMessage(id); string returnUrl = msg.ReturnUrl; env.RemovePartialLoginCookie(); return(Redirect(returnUrl)); } else { ModelState.AddModelError("", authenticateResult.Message); } } model.AvailableDomains = GetDomains(); return(View(model)); }