public void CheckOrDoLogin() { var respostaSaml = Request.Form[KEY_RESPONSE_SAML]; if (respostaSaml != null) { IsLoggedIn = true; var samlResponse = new SAMLResponse(); var xDoc = samlResponse.ParseSAMLResponse(respostaSaml); var certificado = GetCertificateData(URL_CERTIFICATE); if (samlResponse.IsResponseValid(xDoc, certificado)) { SamlUser = samlResponse.ParseSAMLAttribute(xDoc, USER_ATTRIBUTE); } else { throw new InvalidOperationException("Resposta SAML do IDP (Provedor de identidade não foi aceita."); } } else if (!IsLoggedIn) { var request = new SAMLRequest(); var url = string.Concat( LOGIN_URL, "?SAMLRequest=", HttpUtility.UrlEncode(request.GetSAMLRequest(Request.Url.ToString(), ENTITY_ID))); Response.Redirect(url); } }
protected void Page_Load(object sender, EventArgs e) { SAMLResponse samlResponse = new SAMLResponse(); XmlDocument xDoc = samlResponse.ParseSAMLResponse(Request.Form["SAMLResponse"]); if (samlResponse.IsResponseValid(xDoc)) { Response.Write("SAML Response from IDP Was Accepted. Authenticated user is " + samlResponse.ParseSAMLNameID(xDoc)); } else { Response.Write("SAML Response from IDP Was Not Accepted"); } }