コード例 #1
0
        protected async Task ProcessResponseAsync(HttpContext context)
        {
            if (!Response.IsError)
            {
                // success response -- track client authorization for sign-out
                //_logger.LogDebug("Adding client {0} to client list cookie for subject {1}", request.ClientId, request.Subject.GetSubjectId());
                await _clientSession.AddClientIdAsync(Response.Request.ClientId);
            }

            await RenderAuthorizeResponseAsync(context);
        }
コード例 #2
0
        private async Task <IActionResult> ProcessSignInAsync(SignInRequestMessage signin, ClaimsPrincipal user)
        {
            if (user != null)
            {
                _logger.LogDebug("User in WS-Federation signin request: {subjectId}", user.GetSubjectId());
            }
            else
            {
                _logger.LogDebug("No user present in WS-Federation signin request");
            }

            // validate request
            var result = await _signinValidator.ValidateAsync(signin, user);

            if (result.IsError)
            {
                throw new Exception(result.Error);
            }

            if (result.SignInRequired)
            {
                var returnUrl = Url.Action("Index");
                returnUrl = returnUrl.AddQueryString(Request.QueryString.Value);

                var loginUrl = _options.UserInteraction.LoginUrl;
                var url      = loginUrl.AddQueryString(_options.UserInteraction.LoginReturnUrlParameter, returnUrl);

                return(Redirect(url));
            }
            else
            {
                // create protocol response
                var responseMessage = await _generator.GenerateResponseAsync(result);

                await _clientSessionService.AddClientIdAsync(result.Client.ClientId);

                return(new SignInResult(responseMessage));
            }
        }