public void Saml2LogoutResponse_FromXml_Nullcheck() { Action a = () => Saml2LogoutResponse.FromXml(null); a.ShouldThrow <ArgumentNullException>() .And.ParamName.Should().Be("xml"); }
private static CommandResult HandleResponse(UnbindResult unbindResult, StoredRequestState storedRequestState, IOptions options, Uri returnUrl) { var logoutResponse = Saml2LogoutResponse.FromXml(unbindResult.Data); var notificationHandledTheStatus = options.Notifications.ProcessSingleLogoutResponseStatus(logoutResponse, storedRequestState); if (!notificationHandledTheStatus) { var status = logoutResponse.Status; if (status != Saml2StatusCode.Success) { throw new UnsuccessfulSamlOperationException(string.Format(CultureInfo.InvariantCulture, "Idp returned status \"{0}\", indicating that the single logout failed. The local session has been successfully terminated.", status)); } } var commandResult = new CommandResult { HttpStatusCode = HttpStatusCode.SeeOther }; if (!options.SPOptions.Compatibility.DisableLogoutStateCookie) { commandResult.ClearCookieName = StoredRequestState.CookieNameBase + unbindResult.RelayState; } commandResult.Location = storedRequestState?.ReturnUrl ?? returnUrl; options.SPOptions.Logger.WriteInformation("Received logout response " + logoutResponse.Id + ", redirecting to " + commandResult.Location); return(commandResult); }
private static CommandResult HandleResponse(UnbindResult unbindResult, HttpRequestData request) { var status = Saml2LogoutResponse.FromXml(unbindResult.Data).Status; if (status != Saml2StatusCode.Success) { throw new UnsuccessfulSamlOperationException(string.Format(CultureInfo.InvariantCulture, "Idp returned status \"{0}\", indicating that the single logout failed. The local session has been successfully terminated.", status)); } return(new CommandResult() { HttpStatusCode = HttpStatusCode.SeeOther, Location = request.StoredRequestState.ReturnUrl, ClearCookieName = "Kentor." + request.QueryString["RelayState"].Single() }); }
private static CommandResult HandleResponse(UnbindResult unbindResult, StoredRequestState storedRequestState, IOptions options, Uri returnUrl) { var status = Saml2LogoutResponse.FromXml(unbindResult.Data).Status; if (status != Saml2StatusCode.Success) { throw new UnsuccessfulSamlOperationException(string.Format(CultureInfo.InvariantCulture, "Idp returned status \"{0}\", indicating that the single logout failed. The local session has been successfully terminated.", status)); } var commandResult = new CommandResult { HttpStatusCode = HttpStatusCode.SeeOther }; if (!options.SPOptions.Compatibility.DisableLogoutStateCookie) { commandResult.ClearCookieName = "Kentor." + unbindResult.RelayState; } commandResult.Location = storedRequestState?.ReturnUrl ?? returnUrl; return(commandResult); }