示例#1
0
        public void CreateRequest(ClaimParameters parameters, bool withUserId)
        {
            if (Provider == Providers.Empty)
            {
                return;
            }

            var requestString = new StringBuilder();

            if (withUserId)
            {
                if (Provider == Providers.Mail)
                {
                    //var
                    //if (userId.Contains("@"))
                    //{
                    //    userId = userId.Substring(0, userId.IndexOf("@"));
                    //}
                    var userIdAndDomainPair = UserId.Split(new[] { '@' });
                    parameters.OpenidClaimedId.Value = string.Format("http://{0}.id.{1}", userIdAndDomainPair[0], userIdAndDomainPair[1]);
                    parameters.OpenidIdentity.Value  = string.Format("http://{0}.id.{1}", userIdAndDomainPair[0], userIdAndDomainPair[1]);
                }
            }

            requestString.Append(_providerEndPoint[Provider] + "?");
            requestString.Append(parameters.OpenidMode.RequestParameter());
            requestString.Append(parameters.OpenidNs.RequestParameter());
            requestString.Append(parameters.OpenidReturnTo.RequestParameter());
            requestString.Append(parameters.OpenidRealm.RequestParameter());
            requestString.Append(parameters.OpenidClaimedId.RequestParameter());
            requestString.Append(parameters.OpenidIdentity.RequestParameter());
            requestString.Append(parameters.OpenidNsSreg.RequestParameter());

            requestString.Append(parameters.OpenidSregRequired.RequestParameter());

            requestString.Append(parameters.OpenidSregOptional.RequestParameter());


            try
            {
                var request = WebRequest.Create(requestString.ToString());
                var respons = (HttpWebResponse)request.GetResponse();
                HttpContext.Current.Response.Redirect(respons.ResponseUri.AbsoluteUri, true);
            }
            catch (Exception ex)
            {
                if (!(ex is System.Threading.ThreadAbortException))
                {
                    Debug.LogError(ex);
                }
            }
        }
示例#2
0
        public void CreateRequest(ClaimParameters parameters, bool withUserId)
        {
            if (Provider == Providers.Empty)
                return;

            var requestString = new StringBuilder();
            if (withUserId)
            {
                if (Provider == Providers.Mail)
                {
                    parameters.OpenidClaimedId.Value = string.Format("http://{0}.id.mail.ru", UserId);
                    parameters.OpenidIdentity.Value = string.Format("http://{0}.id.mail.ru", UserId);
                }
            }

            requestString.Append(_providerEndPoint[Provider] + "?");
            requestString.Append(parameters.OpenidMode.RequestParameter());
            requestString.Append(parameters.OpenidNs.RequestParameter());
            requestString.Append(parameters.OpenidReturnTo.RequestParameter());
            requestString.Append(parameters.OpenidRealm.RequestParameter());
            requestString.Append(parameters.OpenidClaimedId.RequestParameter());
            requestString.Append(parameters.OpenidIdentity.RequestParameter());
            requestString.Append(parameters.OpenidNsSreg.RequestParameter());

            requestString.Append(parameters.OpenidSregRequired.RequestParameter());

            requestString.Append(parameters.OpenidSregOptional.RequestParameter());

            try
            {
                var request = WebRequest.Create(requestString.ToString());
                var respons = (HttpWebResponse)request.GetResponse();
                HttpContext.Current.Response.Redirect(respons.ResponseUri.AbsoluteUri, true);
            }
            catch (Exception ex)
            {
                if (!(ex is System.Threading.ThreadAbortException))
                {
                    Debug.LogError(ex);
                }
            }
        }