public static int SendSSOAuthanXML(string ProvinceID,string SPID, string RedirectURL, HttpContext SpecificContext, string SPDataCacheName, MBOSSClass.AcceptAccountTypeList[] AcceptAccountTypes, string ExtendField, string TransactionID, out string ResultXML, out string ErrMsg, out string newExtendField)
    {
        int result = -20005;
        ResultXML = "";
        ErrMsg = "";
        newExtendField = "";
        MBOSSClass Mboss = new MBOSSClass();
        //SPInfoManager spInfo = new SPInfoManager();
        //byte[] privateKeyFile;
        //string UserName = "";
        //string privateKeyPassword = "";
        try
        {
            //Object SPData = spInfo.GetSPData(SpecificContext, SPDataCacheName);
            //privateKeyFile = spInfo.GetCAInfo("35111111", 1, SPData, out UserName, out privateKeyPassword);
            result = Mboss.SSOAuthanXML(ProvinceID,SPID, RedirectURL, AcceptAccountTypes, SpecificContext, SPDataCacheName, out ResultXML, out ErrMsg, out TransactionID);
        }
        catch (Exception err)
        {
            result = -20005;
            ErrMsg = err.Message;
        }
        finally
        {
            #region WriteLog
            StringBuilder msg = new StringBuilder();
            msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n\r\n");
            msg.Append(" CAP01003 发送身份认证请求 " + DateTime.Now.ToString("u") + "\r\n");
            msg.Append(";RedirectURL - " + RedirectURL);
            msg.Append(";SpecificContext - " + SpecificContext);
            msg.Append(";SPDataCacheName - " + SPDataCacheName + "\r\n");
            if (AcceptAccountTypes != null)
            {
                for (int i = 0; i < AcceptAccountTypes.Length; i++)
                {
                    msg.Append(";AcceptAccountType - " + AcceptAccountTypes[i].AcceptAccountType);
                }
            }
            else
            {
                msg.Append(";AcceptAccountType - " + "");
            }
            msg.Append("\r\n ;ExtendField - " + ExtendField);
            msg.Append("\r\n");

            msg.Append("处理结果 - " + result);
            msg.Append("ResultXML - " + ResultXML);
            msg.Append("; 错误描述 - " + ErrMsg);
            msg.Append("; ExtendField - " + newExtendField + "\r\n");
            msg.Append("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n");

            BTUCenterInterfaceLog.CenterForBizTourLog("SendSSOAuthanXML", msg);
            #endregion
        }
        return result;
    }
Esempio n. 2
0
    protected void ssoFunc()
    {
        string UAProvinceID = Request["ProvinceID"];
        PageUtility.SetCookie(UAProvinceID, "UAProvinceID", this.Page);

        if (CommonUtility.IsParameterExist("UATicket", this.Page))
        {
            Response.Redirect("SelectAssertion.aspx?UATicket=" + Request["UATicket"]);
        }
        if (CommonUtility.IsParameterExist("ProvinceID", this.Page))
        {
            ReturnURL = Request.Cookies["ReturnURL"].Value.ToString();
        }
        else
            return ;

        USPID = UAProvinceID + "999991";

        //1判断全局Token是否存在
        try
        {
            MBOSSClass mboss = new MBOSSClass();
            //MBOSSClass.SSOAddressResp SSOAddress;
            //Result = mboss.AuthenSelectArddess(ProvinceID, this.Context, "SPCAData", out SSOAddress, out ErrMsg);
            //if (Result != 0)
            //{
            //    SendJF();
            //    return;
            //}
            //string SSOAddress1 = SSOAddress.SSOAddress;//省级UA的SSO接入地址
            //string AssertionAddress1 = SSOAddress.AssertionAddress;//省级UA的断言查询地址

            //获取SSO认证地址和断言查询地址
            Result = mboss.GetMBOSSAddress(this.Context, USPID, out AssertionAddress, out SSOAddress, out ErrMsg);
            if (Result != 0)
            {
                SendJF();
                return;
            }

            PageUtility.SetCookie(AssertionAddress, "AssertionAddress", this.Page);
            PageUtility.SetCookie(SSOAddress, "SSOAddress", this.Page);

            //SPID = this.Response.Cookies["SPID"].Value.ToString();
            //向归属地UA发送身份认证请求
            //MBOSSClass.AcceptAccountTypeList[] acs = new MBOSSClass.AcceptAccountTypeList[1];
            //MBOSSClass.AcceptAccountTypeList ac = new MBOSSClass.AcceptAccountTypeList();
            //ac.AcceptAccountType = "0000000";
            //acs[0] = ac;
            MBOSSClass.AcceptAccountTypeList[] acs = new MBOSSClass.AcceptAccountTypeList[1];
            MBOSSClass.AcceptAccountTypeList ac = new MBOSSClass.AcceptAccountTypeList();
            //ac.AcceptAccountType = "2000001";

            //acs[0] = ac;
            //MBOSSClass.AcceptAccountTypeList ac1 = new MBOSSClass.AcceptAccountTypeList();
            //ac1.AcceptAccountType = "2000002";
            //acs[1] = ac1;
            //MBOSSClass.AcceptAccountTypeList ac2 = new MBOSSClass.AcceptAccountTypeList();
            //ac2.AcceptAccountType = "2000003";
            //acs[2] = ac2;
            //MBOSSClass.AcceptAccountTypeList ac3 = new MBOSSClass.AcceptAccountTypeList();
            //ac3.AcceptAccountType = "2000004";
            //acs[3] = ac3;

            //MBOSSClass.AcceptAccountTypeList ac4 = new MBOSSClass.AcceptAccountTypeList();
            ac.AcceptAccountType = "0000000";
            acs[0] = ac;

            string ResultXML = "";
            string TransactionID = "";
            string SelectAssertion = System.Configuration.ConfigurationManager.AppSettings["SelectAssertion"];

            log("积分商城ReturnURL=" + ReturnURL);
            Result = mboss.SSOAuthanXML(UAProvinceID,SPID, SelectAssertion, acs, this.Context, "SPCAData", out ResultXML, out ErrMsg, out TransactionID);
            log(" mboss.SSOAuthanXML Result" + Result + "ResultXML " + ResultXML + "ErrMsg" + ErrMsg);

            if (Result != 0)
            {
                SendJF();
                return;
            }

            PageUtility.SetCookie(TransactionID, "TransactionID", this.Page);

            //post到sso认证地址
            Response.Write("<form name='frm' id='frm' action='" + SSOAddress + "' method='post'>");
            Response.Write("<input name='SSORequestXML' value='" + ResultXML + "'  type='hidden'  >");
            Response.Write("</form>");
            Response.Write("<script language='javascript'>frm.submit();</script>");
        }
        catch (Exception err)
        {
            SendJF();
            return;
        }
    }