public async Task PreAuthenticateAsync(PreAuthenticationContext context)
        {
            var signInData = Mapper.Map<SignInMessage, SignInData>(context.SignInMessage);
            var result = await domainService.PreAuthenticateAsync(signInData);

            context.AuthenticateResult = Mapper.Map<AuthenticationResult, AuthenticateResult>(result);
        }
 public async Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     foreach (var service in this.services)
     {
         await service.PreAuthenticateAsync(context);
     }
 }
        public override async Task PreAuthenticateAsync(PreAuthenticationContext context)
        {
            var user = await owinContext.Environment.GetIdentityServerPartialLoginAsync();
            if (user == null)
            {
                // no idp, so do partial login to HRD page
                context.AuthenticateResult = new AuthenticateResult("~/hrd", (IEnumerable<Claim>)null);
            }
            else
            {
                // we have partial login, so look for IdP claim
                var idp_claim = user.Claims.FirstOrDefault(x => x.Type == "idp");
                if (idp_claim == null)
                {
                    context.AuthenticateResult = new AuthenticateResult("Error: no IdP claim found");
                }

                context.SignInMessage.IdP = idp_claim.Value;
            }
        }
 public Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     return inner.PreAuthenticateAsync(context);
 }
 public async Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     await this.inMemoryUserService.PreAuthenticateAsync(context);
 }
        public async Task<IHttpActionResult> Login(string signin = null)
        {
            Logger.Info("Login page requested");

            if (signin.IsMissing())
            {
                Logger.Info("No signin id passed");
                return HandleNoSignin();
            }

            if (signin.Length > MaxSignInMessageLength)
            {
                Logger.Error("Signin parameter passed was larger than max length");
                return RenderErrorPage();
            }

            var signInMessage = signInMessageCookie.Read(signin);
            if (signInMessage == null)
            {
                Logger.Info("No cookie matching signin id found");
                return HandleNoSignin();
            }

            Logger.DebugFormat("signin message passed to login: {0}", JsonConvert.SerializeObject(signInMessage, Formatting.Indented));

            var preAuthContext = new PreAuthenticationContext { SignInMessage = signInMessage };
            await userService.PreAuthenticateAsync(preAuthContext);

            var authResult = preAuthContext.AuthenticateResult;
            if (authResult != null)
            {
                if (authResult.IsError)
                {
                    Logger.WarnFormat("user service returned an error message: {0}", authResult.ErrorMessage);

                    await eventService.RaisePreLoginFailureEventAsync(signin, signInMessage, authResult.ErrorMessage);
                    
                    return RenderErrorPage(authResult.ErrorMessage);
                }

                Logger.Info("user service returned a login result");

                await eventService.RaisePreLoginSuccessEventAsync(signin, signInMessage, authResult);

                return await SignInAndRedirectAsync(signInMessage, signin, authResult);
            }

            if (signInMessage.IdP.IsPresent())
            {
                Logger.InfoFormat("identity provider requested, redirecting to: {0}", signInMessage.IdP);
                return await LoginExternal(signin, signInMessage.IdP);
            }

            return await RenderLoginPage(signInMessage, signin);
        }
 public Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     return Task.FromResult(0);
 }
 public override Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     return base.PreAuthenticateAsync(context);
 }
 public override Task PreAuthenticateAsync(PreAuthenticationContext context)
 {
     var id = ctx.Request.Query.Get("signin");
     context.AuthenticateResult = new AuthenticateResult("~/custom/login?id=" + id, (IEnumerable<Claim>)null);
     return Task.FromResult(0);
 }