Пример #1
0
        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);
            }
        }
Пример #2
0
    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");
        }
    }