Пример #1
0
        public Task <bool> ReceiveSpInitiatedLogoutResponse(string providerName, string logoutRequestId)
        {
            var logoutMessage = _httpRedirectBinding.GetLogoutResponseMessage(providerName);
            var logoutRequest = _xmlProvider.GetLogoutResponse(logoutMessage);

            return(Task.FromResult(_validator.ValidateLogoutResponse(logoutRequest, logoutRequestId)));
        }
        public bool IsLogoutResponseValid(Uri uri, string originalRequestId)
        {
            var signingCertificate = _certificateProvider.GetCertificate();

            var logoutMessage =
                _httpRedirectBinding.GetLogoutResponseMessage(uri, signingCertificate.IdentityProvider.PublicKey.Key);
            var logoutRequest = _samlProvider.GetLogoutResponse(logoutMessage);

            _saml2Validator.CheckReplayAttack(logoutRequest.InResponseTo, originalRequestId);

            return(logoutRequest.Status.StatusCode.Value == Saml2Constants.StatusCodes.Success);
        }