Пример #1
0
        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));
        }
Пример #2
0
        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));
        }