private Saml2Response(XmlDocument xml) { xmlDocument = xml; id = new Saml2Id(xml.DocumentElement.Attributes["ID"].Value); var parsedInResponseTo = xml.DocumentElement.Attributes["InResponseTo"].GetValueIfNotNull(); if (parsedInResponseTo != null) { inResponseTo = new Saml2Id(parsedInResponseTo); } issueInstant = DateTime.Parse(xml.DocumentElement.Attributes["IssueInstant"].Value, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal); var statusString = xml.DocumentElement["Status", Saml2Namespaces.Saml2PName] ["StatusCode", Saml2Namespaces.Saml2PName].Attributes["Value"].Value; status = StatusCodeHelper.FromString(statusString); issuer = xmlDocument.DocumentElement["Issuer", Saml2Namespaces.Saml2Name].GetTrimmedTextIfNotNull(); var destinationUriString = xmlDocument.DocumentElement.Attributes["Destination"].GetValueIfNotNull(); if (destinationUriString != null) { destinationUri = new Uri(destinationUriString); } }
/// <summary> /// Ctor /// </summary> /// <param name="status">Status of the response</param> protected Saml2StatusResponseType(Saml2StatusCode status) { Status = status; MessageName = "SAMLResponse"; Id = new Saml2Id(); IssueInstant = DateTime.UtcNow; }
/// <summary> /// Create a response with the supplied data. /// </summary> /// <param name="issuer">Issuer of the response.</param> /// <param name="issuerCertificate">The certificate to use when signing /// this response in XML form.</param> /// <param name="destinationUri">The destination Uri for the message</param> /// <param name="claimsIdentities">Claims identities to be included in the /// response. Each identity is translated into a separate assertion.</param> public Saml2Response(string issuer, X509Certificate2 issuerCertificate, Uri destinationUri, params ClaimsIdentity[] claimsIdentities) { this.issuer = issuer; this.claimsIdentities = claimsIdentities; this.issuerCertificate = issuerCertificate; this.destinationUri = destinationUri; id = new Saml2Id("id" + Guid.NewGuid().ToString("N")); status = Saml2StatusCode.Success; }
/// <summary> /// Ctor, bundling the Saml2 status codes and message into the exception message. /// </summary> /// <param name="message">Exception message.</param> /// <param name="statusCode">Status of the SAML2Response</param> /// <param name="statusMessage">Status message of SAML2Response</param> /// <param name="secondLevelStatus">Second level status of SAML2Response</param> public UnsuccessfulSamlOperationException(string message, Saml2StatusCode statusCode, string statusMessage, string secondLevelStatus) : base(message + "\n" + " Saml2 Status Code: " + statusCode + "\n" + " Saml2 Status Message: " + statusMessage + "\n" + " Saml2 Second Level Status: " + secondLevelStatus) { this.Status = statusCode; this.StatusMessage = statusMessage; this.SecondLevelStatus = secondLevelStatus; }
/// <summary> /// Create a response with the supplied data. /// </summary> /// <param name="issuer">Issuer of the response.</param> /// <param name="issuerCertificate">The certificate to use when signing /// this response in XML form.</param> /// <param name="destinationUrl">The destination Uri for the message</param> /// <param name="inResponseTo">In response to id</param> /// <param name="claimsIdentities">Claims identities to be included in the /// response. Each identity is translated into a separate assertion.</param> public Saml2Response(EntityId issuer, X509Certificate2 issuerCertificate, Uri destinationUrl, string inResponseTo, params ClaimsIdentity[] claimsIdentities) { this.issuer = issuer; this.claimsIdentities = claimsIdentities; this.issuerCertificate = issuerCertificate; this.destinationUrl = destinationUrl; if (inResponseTo != null) { this.inResponseTo = new Saml2Id(inResponseTo); } id = new Saml2Id("id" + Guid.NewGuid().ToString("N")); status = Saml2StatusCode.Success; }
private Saml2Response(XmlDocument xml) { xmlDocument = xml; id = xml.DocumentElement.Attributes["ID"].Value; issueInstant = DateTime.Parse(xml.DocumentElement.Attributes["IssueInstant"].Value, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal); var statusString = xml.DocumentElement["Status", Saml2Namespaces.Saml2PName] ["StatusCode", Saml2Namespaces.Saml2PName].Attributes["Value"].Value; status = StatusCodeHelper.FromString(statusString); }
/// <summary> /// Ctor /// </summary> /// <param name="status">Status of the response</param> protected Saml2StatusResponseType(Saml2StatusCode status) { Status = status; }
public static string FromCode(Saml2StatusCode statusCode) { return(fromCode[statusCode]); }
public static string FromCode(Saml2StatusCode statusCode) { return fromCode[statusCode]; }
/// <summary> /// Ctor /// </summary> /// <param name="status">Status of the response.</param> public Saml2LogoutResponse(Saml2StatusCode status) : base(status) { }
/// <summary> /// /// </summary> /// <param name="message">Exception message.</param> /// <param name="statusCode">Status of the SAML2Response</param> /// <param name="statusMessage">Status message of SAML2Response</param> /// <param name="secondLevelStatus">Second level status of SAML2Response</param> public UnsuccessfulSamlOperationException(string message, Saml2StatusCode statusCode, string statusMessage, string secondLevelStatus) : base(message) { this.Status = statusCode; this.StatusMessage = statusMessage; this.SecondLevelStatus = secondLevelStatus; }