예제 #1
0
 public static void IXmlBinaryReaderWriterInitializerTest()
 {
     DataContractSerializer serializer = new DataContractSerializer(typeof(TestData));
     MemoryStream ms = new MemoryStream();
     TestData td = new TestData();
     XmlDictionaryWriter binaryWriter = XmlDictionaryWriter.CreateBinaryWriter(ms, null, null, false);
     IXmlBinaryWriterInitializer writerInitializer = (IXmlBinaryWriterInitializer)binaryWriter;
     writerInitializer.SetOutput(ms, null, null, false);
     serializer.WriteObject(ms, td);
     binaryWriter.Flush();
     byte[] xmlDoc = ms.ToArray();
     binaryWriter.Close();
     XmlDictionaryReader binaryReader = XmlDictionaryReader.CreateBinaryReader(xmlDoc, 0, xmlDoc.Length, null, XmlDictionaryReaderQuotas.Max, null, new OnXmlDictionaryReaderClose((XmlDictionaryReader reader) => { }));
     IXmlBinaryReaderInitializer readerInitializer = (IXmlBinaryReaderInitializer)binaryReader;
     readerInitializer.SetInput(xmlDoc, 0, xmlDoc.Length, null, XmlDictionaryReaderQuotas.Max, null, new OnXmlDictionaryReaderClose((XmlDictionaryReader reader) => { }));
     binaryReader.ReadContentAsObject();
     binaryReader.Close();
 }
예제 #2
0
    public static void IXmlMtomReaderWriterInitializerTest()
    {
        DataContractSerializer serializer           = new DataContractSerializer(typeof(TestData));
        MemoryStream           ms                   = new MemoryStream();
        TestData                  td                = new TestData();
        XmlDictionaryWriter       binaryWriter      = XmlDictionaryWriter.CreateMtomWriter(ms, Encoding.UTF8, int.MaxValue, "application/soap+xml", null, null, true, false);
        IXmlMtomWriterInitializer writerInitializer = (IXmlMtomWriterInitializer)binaryWriter;

        writerInitializer.SetOutput(ms, Encoding.UTF8, int.MaxValue, "application/soap+xml", null, null, true, false);
        serializer.WriteObject(ms, td);
        binaryWriter.Flush();
        byte[] xmlDoc = ms.ToArray();
        binaryWriter.Close();
        Encoding[]                allEncodings      = new Encoding[] { Encoding.Unicode, Encoding.BigEndianUnicode, Encoding.UTF8 };
        XmlDictionaryReader       mtomReader        = XmlDictionaryReader.CreateMtomReader(xmlDoc, 0, xmlDoc.Length, allEncodings, null, XmlDictionaryReaderQuotas.Max, int.MaxValue, new OnXmlDictionaryReaderClose((XmlDictionaryReader reader) => { }));
        IXmlMtomReaderInitializer readerInitializer = (IXmlMtomReaderInitializer)mtomReader;

        readerInitializer.SetInput(xmlDoc, 0, xmlDoc.Length, allEncodings, null, XmlDictionaryReaderQuotas.Max, int.MaxValue, new OnXmlDictionaryReaderClose((XmlDictionaryReader reader) => { }));
        var b = mtomReader.ReadContentAsObject();

        mtomReader.Close();
    }
예제 #3
0
        static void Main(string[] args)
        {
            //iscitavam podatke iz baze
            Console.ReadLine();
            List <Automobil> iscitaniAutomobili = new List <Automobil>();

            DataContractSerializer dcs = new DataContractSerializer(typeof(List <Automobil>));

            using (Stream stream = new FileStream("Automobili.xml", FileMode.OpenOrCreate, FileAccess.Read))
            {
                using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(stream, new XmlDictionaryReaderQuotas()))
                {
                    reader.ReadContentAsObject();
                    iscitaniAutomobili = (List <Automobil>)dcs.ReadObject(reader);
                }
            }

            foreach (var item in iscitaniAutomobili)
            {
                Podaci.automobili[item.Registracija] = item;
            }

            List <Korisnik> iscitaniKorisnici = new List <Korisnik>();

            DataContractSerializer dcs1 = new DataContractSerializer(typeof(List <Korisnik>));

            using (Stream stream = new FileStream("Korisnici.xml", FileMode.OpenOrCreate, FileAccess.Read))
            {
                using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(stream, new XmlDictionaryReaderQuotas()))
                {
                    reader.ReadContentAsObject();
                    iscitaniKorisnici = (List <Korisnik>)dcs1.ReadObject(reader);
                }
            }

            foreach (var item in iscitaniKorisnici)
            {
                Podaci.korisnici[item.KorisnickoIme] = item;
            }

            List <Korisnik> iscitaniZahtjevi = new List <Korisnik>();

            DataContractSerializer dcs2 = new DataContractSerializer(typeof(List <Korisnik>));

            using (Stream stream = new FileStream("ZahtjeviZlCl.xml", FileMode.OpenOrCreate, FileAccess.Read))
            {
                using (XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(stream, new XmlDictionaryReaderQuotas()))
                {
                    reader.ReadContentAsObject();
                    iscitaniZahtjevi = (List <Korisnik>)dcs2.ReadObject(reader);
                }
            }
            foreach (var item in iscitaniKorisnici)
            {
                Podaci.ZahtjevZlClana.Add(item);
            }
            string servNameCrt = SecurityManager.Formatter.ParseName(WindowsIdentity.GetCurrent().Name);
            //string servNameCrt = "wcfservicem";
            //string OU1= "admin";
            //string OU2 = "clan";
            //string MachineName = Environment.MachineName;
            //string[] parts = MachineName.Split('-');
            //string MachineNameSplit = String.Format("{0}", parts[0]);
            //logName = String.Format("{0}LogFile", MachineNameSplit);
            //logSourceName = String.Format("{0}LogSourceName", "net.tcp://localhost:4000");
            NetTcpBinding binding = new NetTcpBinding();

            binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate;
            string address = "net.tcp://localhost:4000/WCFService";
            Audit  audit   = new Audit();

            ServiceHost host = new ServiceHost(typeof(Admin));

            //-----konfigurisanje ServiceHost obj da podrze zapisivanje bezbj.dogadjaja
            ServiceSecurityAuditBehavior newAuditBehavior = new ServiceSecurityAuditBehavior();

            host.Description.Behaviors.Remove <ServiceSecurityAuditBehavior>();
            host.Description.Behaviors.Add(newAuditBehavior);
            //-----

            host.AddServiceEndpoint(typeof(IAdmin), binding, address);
            //host.Authorization.ServiceAuthorizationManager = new ServiceAuthorizationManager(); //provjeriti !
            //host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior));
            //host.Description.Behaviors.Add(new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });



            host.Credentials.ClientCertificate.Authentication.CertificateValidationMode  = X509CertificateValidationMode.Custom;
            host.Credentials.ClientCertificate.Authentication.CustomCertificateValidator = new ServiceCertificateValidator();
            host.Credentials.ClientCertificate.Authentication.RevocationMode             = X509RevocationMode.NoCheck;

            host.Credentials.ServiceCertificate.Certificate = CertificateManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, servNameCrt /*servNameCrt,OU1,OU2*/);
            //host.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My,X509FindType.FindBySubjectName,servNameCrt);
            //host.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint,OU1);
            //host.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint,"");
            host.Open();

            Console.WriteLine("WCFService is opened. Press <enter> to finish...");
            Console.ReadLine();

            host.Close();
        }