Ejemplo n.º 1
0
        public bool ValidateSignature(HttpRequest request)
        {
            StringBuilder sb = new StringBuilder();

            string[] keys          = request.Params.AllKeys;
            bool     not_first     = false;
            string   signed_fields = request.Params["openid.signed"];

            if (signed_fields.IndexOf("claimed_id") < 0 || signed_fields.IndexOf("return_to") < 0)
            {
                return(false);
            }

            if (!request.Params["openid.return_to"].StartsWith(Domain))
            {
                return(false);
            }

            for (int i = 0; i < keys.Length; i++)
            {
                if (not_first)
                {
                    sb.Append("&");
                }
                if (keys[i].StartsWith("openid."))
                {
                    if (keys[i] == "openid.mode")
                    {
                        sb.Append(keys[i] + "=check_authentication");
                    }
                    else
                    {
                        sb.Append(keys[i] + "=" + request.Params[keys[i]]);
                    }
                    not_first = true;
                }
            }

            HttpWebResponse response = HTTPComm.HttpReq(endpointUrl, sb.ToString(), "POST");
            string          result   = HTTPComm.HttpPost(endpointUrl, sb.ToString());

            if (result.Contains("is_valid:true\n"))
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
        public static void respond(Message msg, HttpResponse response)
        {
            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("SymT", msg.SymT);
            dict.Add("SignedBy", msg.SignedBy);
            dict.Add("LargestParty", msg.largestParty);
            dict.Add("Value", msg.value.ToString());
            dict.Add("Certified", msg.certified.ToString());

            XmlDocument doc = HTTPComm.GenerateXML(dict);

            response.StatusCode      = 200;
            response.ContentType     = "text/xml";                //must be 'text/xml'
            response.ContentEncoding = System.Text.Encoding.UTF8; //we'd like UTF-8
            doc.Save(response.Output);
        }