示例#1
0
        static void Main(string[] args)
        {
            var client = new GASU.gasu2Client();

            X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

            store.Open(OpenFlags.ReadOnly);

            var coll = store.Certificates.Cast <X509Certificate2>().ToArray();

            X509Certificate2 clientCert = coll.FirstOrDefault(x => string.Equals(x.Thumbprint, clientCertThumbprint, StringComparison.InvariantCultureIgnoreCase));
            X509Certificate2 serverCert = coll.FirstOrDefault(x => string.Equals(x.Thumbprint, serverCertThumbprint, StringComparison.InvariantCultureIgnoreCase));

            client.ClientCredentials.ClientCertificate.Certificate         = clientCert;
            client.ClientCredentials.ServiceCertificate.DefaultCertificate = serverCert;

            client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
            client.ClientCredentials.ServiceCertificate.Authentication.RevocationMode            = X509RevocationMode.NoCheck;


            string serverCommonName = serverCert.GetNameInfo(X509NameType.SimpleName, false);
            // DNS имя не совпадает с CommonName из сертификата сервера. Поэтому явно задаем доверие.
            EndpointAddress myEndpointAddr = new EndpointAddress(new Uri(serviceUri),
                                                                 EndpointIdentity.CreateDnsIdentity(
                                                                     serverCommonName));

            client.Endpoint.Address = myEndpointAddr;


            client.ChannelFactory.Endpoint.Contract.ProtectionLevel = ProtectionLevel.Sign;

            Publish(client, Guid.NewGuid().ToString());
            store.Close();
        }
示例#2
0
        private static void Query(GASU.gasu2Client client, string msgId)
        {
            #region Query
            var msg = new GASU.GasuQueryMessage
            {
                Message = new GASU.MessageType
                {
                    Sender = new GASU.orgExternalType
                    {
                        Code = "<Код зарегистрированной системы-поставщика>",
                        Name = "<Наименование зарегистрированной системы-поставщика>"
                    },
                    Recipient = new GASU.orgExternalType
                    {
                        Code = "<Код зарегистрированной системы-поставщика>",
                        Name = "<Наименование зарегистрированной системы-поставщика>"
                    },
                    Originator = new GASU.orgExternalType
                    {
                        Code = "<Код зарегистрированной системы-поставщика>",
                        Name = "<Наименование зарегистрированной системы-поставщика>"
                    },
                    ServiceName = "",
                    TypeCode    = GASU.TypeCodeType.GFNC,
                    Status      = GASU.StatusType.REQUEST,
                    Date        = DateTime.Now,

                    RequestIdRef       = msgId,
                    OriginRequestIdRef = msgId,
                    ServiceCode        = "",
                    CaseNumber         = "",
                    TestMsg            = "",
                },
                MessageData = new GASU.MessageDataType
                {
                    AppData = new GASU.AppDataType
                    {
                        AppQueryMessage = new GASU.AppQueryMessageType
                        {
                            AppHeader = new GASU.AppHeaderType
                            {
                                DataSourceRef = "<Код зарегистрированной системы-поставщика>",
                                ID            = "<Код зарегистрированной системы-поставщика>",
                                HeaderInfo    = new GASU.AppDataType()
                            },
                            Query = new GASU.QueryType
                            {
                                returnType      = GASU.ObjectTypeType.dataset,
                                pagingStartPage = 1,
                                pagingPageSize  = 1000,
                                ItemElementName = GASU.ItemChoiceType.IndicatorQuery,
                                Item            = new GASU.IndicatorQueryType
                                {
                                    providerRef = "GASU",
                                    Value       = "ГАСУ/МУП/Р/1"
                                }
                            }
                        }
                    }
                }
            };

            client.query(msg);
            #endregion
        }
示例#3
0
 private static void Publish(GASU.gasu2Client client, string msgId)
 {
     #region Publish
     var msg = new GASU.GasuMessage
     {
         Message = new GASU.MessageType
         {
             Sender = new GASU.orgExternalType
             {
                 Code = "<Код зарегистрированной системы-поставщика>",
                 Name = "<Наименование зарегистрированной системы-поставщика>"
             },
             Recipient = new GASU.orgExternalType
             {
                 Code = "<Код зарегистрированной системы-поставщика>",
                 Name = "<Наименование зарегистрированной системы-поставщика>"
             },
             Originator = new GASU.orgExternalType
             {
                 Code = "<Код зарегистрированной системы-поставщика>",
                 Name = "<Наименование зарегистрированной системы-поставщика>"
             },
             ServiceName        = "",
             TypeCode           = GASU.TypeCodeType.GFNC,
             Status             = GASU.StatusType.REQUEST,
             Date               = DateTime.Now,
             RequestIdRef       = msgId,
             OriginRequestIdRef = msgId,
             ServiceCode        = "",
             CaseNumber         = "",
             TestMsg            = "true"
         },
         MessageData = new GASU.GasuMessageMessageData
         {
             AppData = new GASU.GasuMessageMessageDataAppData
             {
                 AppMessage = new GASU.AppMessageType
                 {
                     AppHeader = new GASU.AppHeaderType
                     {
                         ID            = "<Код зарегистрированной системы-поставщика>",
                         DataSourceRef = "<Код зарегистрированной системы-поставщика>",
                         HeaderInfo    = new GASU.AppDataType()
                     },
                     MessageType = GASU.MessageTypeType.ImportFull,
                     Body        = new GASU.AppMessageTypeBody
                     {
                         Items = new GASU.DataSetType[]
                         {
                             new GASU.DataSetType
                             {
                                 indicatorRef = "ГАСУ/МУП/Р/16",
                                 providerRef  = "GASU",
                                 prepareTime  = DateTime.Now,
                                 uid          = Guid.NewGuid().ToString(),
                                 Series       = new GASU.SeriesType[]
                                 {
                                     new GASU.SeriesType
                                     {
                                         SeriesKey = new GASU.SeriesTypeSeriesKeyItem[]
                                         {
                                             new GASU.SeriesTypeSeriesKeyItem
                                             {
                                                 DimensionRef = "SP1",
                                                 Value        = "0300"
                                             },
                                             new GASU.SeriesTypeSeriesKeyItem
                                             {
                                                 DimensionRef = "SP_ZPMUP",
                                                 Value        = "1"
                                             }
                                         },
                                         Observation = new GASU.SeriesTypeObservation
                                         {
                                             Time     = "2014",
                                             ObsValue = new GASU.ObsValueType
                                             {
                                                 ValueVc          = 447,
                                                 ValueVcSpecified = true,
                                                 ValueVo          = 0,
                                                 ValueVoSpecified = true,
                                                 ValueVs          = 0,
                                                 ValueVsSpecified = true
                                             }
                                         }
                                     }
                                 }
                             },
                         }
                     }
                 }
             }
         }
     };
     #endregion
     try
     {
         var result = client.publish(msg);
     }
     catch (Exception e)
     {
     }
 }