/// <summary> /// Build a LogoutRequest and send it to the Federation Partner with the given entity ID. /// </summary> /// <param name="entityID"></param> private static void CreateLogoutRequest(string entityID) { User user = UserSessionsHandler.CurrentUser; Saml20LogoutRequest request = new Saml20LogoutRequest(); request.Issuer = IDPConfig.ServerBaseUrl; request.SessionIndex = Guid.NewGuid().ToString("N"); request.SubjectToLogOut = new NameID(); request.SubjectToLogOut.Format = Saml20Constants.NameIdentifierFormats.Unspecified; request.SubjectToLogOut.Value = user.Username; Saml20MetadataDocument metadata = GetMetadata(entityID); // HTTPRedirect(SAMLAction.SAMLRequest, metadata.SLOEndpoint(SAMLBinding.REDIRECT), request.GetXml()); HttpPostBindingBuilder builder = new HttpPostBindingBuilder(metadata.SLOEndpoint(SAMLBinding.POST)); builder.Action = SAMLAction.SAMLRequest; //builder.Response = assertionDoc.OuterXml; string xmloutput = request.GetXml().OuterXml; TextWriter tw = new StreamWriter("C:\\temp\\idp.txt", true); tw.WriteLine(xmloutput); tw.Close(); builder.Response = xmloutput; builder.GetPage().ProcessRequest(HttpContext.Current); HttpContext.Current.Response.End(); }
/// <summary> /// Returns an instance of the class with meaningful default values set. /// </summary> /// <returns></returns> public static Saml20LogoutRequest GetDefault() { Saml20LogoutRequest result = new Saml20LogoutRequest(); result.SubjectToLogOut = new NameID(); //format SAML20FederationConfig config = SAML20FederationConfig.GetConfig(); if (config.ServiceProvider == null || string.IsNullOrEmpty(config.ServiceProvider.ID)) { throw new Saml20FormatException(Resources.ServiceProviderNotSet); } result.Issuer = config.ServiceProvider.ID; return(result); }
/// <summary> /// Returns an instance of the class with meaningful default values set. /// </summary> /// <returns></returns> public static Saml20LogoutRequest GetDefault() { Saml20LogoutRequest result = new Saml20LogoutRequest(); result.SubjectToLogOut = new NameID(); //format SAML20FederationConfig config = SAML20FederationConfig.GetConfig(); if (config.ServiceProvider == null || string.IsNullOrEmpty(config.ServiceProvider.ID)) throw new Saml20FormatException(Resources.ServiceProviderNotSet); result.Issuer = config.ServiceProvider.ID; return result; }