/// <summary> /// The save sertificate. /// </summary> /// <param name="sert"> /// The sert. /// </param> /// <param name="version"> /// The Version. /// </param> /// <param name="type"> /// The type. /// </param> /// <param name="key"> /// The key. /// </param> /// <param name="workstationId"> /// The workstation id. /// </param> /// <param name="smoId"> /// The smo id. /// </param> private void SaveSertificate( SertificateUec sert, short version, int type, byte[] key, Guid?workstationId, Guid?smoId) { if (sert != null) { sert.Key = key; sert.InstallDate = DateTime.Now.Date; } else { var conceptCacheManager = ObjectFactory.GetInstance <IConceptCacheManager>(); var workstationManager = ObjectFactory.GetInstance <IWorkstationManager>(); var smoManager = ObjectFactory.GetInstance <IOrganisationManager>(); sert = new SertificateUec { IsActive = true, Key = key, Type = conceptCacheManager.GetById(type), Version = version, Workstation = workstationId.HasValue ? workstationManager.GetById(workstationId.Value) : null, Smo = smoId.HasValue ? smoManager.GetById(smoId.Value) : null, InstallDate = DateTime.Now.Date }; var session = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession(); session.Save(sert); session.Flush(); } }
/// <summary> /// The assign from. /// </summary> /// <param name="w"> /// The w. /// </param> public void AssignFrom(Workstation w) { Id = w.Id; Name = w.Name; PointDistributionPolicy = w.PointDistributionPolicy; if (SertificateUecs != null) { SertificateUecs.Clear(); } else { SertificateUecs = new List <SertificateUec>(); } foreach (var sert in w.SertificateUecs) { var s = new SertificateUec(); s.Id = sert.Id; s.IsActive = sert.IsActive; s.Key = sert.Key; s.Type = sert.Type; s.Version = sert.Version; s.Workstation = new Workstation(); s.Workstation.Id = w.Id; s.InstallDate = sert.InstallDate; SertificateUecs.Add(s); } UecCerticateType = w.UecCerticateType; UecReaderName = w.UecReaderName; SmardCardReaderName = w.SmardCardReaderName; }
/// <summary> /// The add certificate. /// </summary> /// <param name="w"> /// The w. /// </param> /// <param name="sessionValueName"> /// The session value name. /// </param> /// <param name="certificateType"> /// The certificate type. /// </param> private void AddCertificate(Workstation w, string sessionValueName, TypeSertificate certificateType) { if (Session[sessionValueName] != null) { var sert = new SertificateUec(); sert.Key = (byte[])Session[sessionValueName]; sert.Type = regulatoryService.GetConcept((int)certificateType); sert.IsActive = true; sert.Version = 1; w.SertificateUecs.Add(sert); } }
/// <summary> /// The add certificate. /// </summary> /// <param name="s"> /// The s. /// </param> /// <param name="sessionValueName"> /// The session value name. /// </param> /// <param name="certificateType"> /// The certificate type. /// </param> private void AddCertificate(Organisation s, string sessionValueName, TypeSertificate certificateType) { if (Session[sessionValueName] != null) { var sert = new SertificateUec(); sert.Key = (byte[])Session[sessionValueName]; sert.Type = regulatoryService.GetConcept((int)certificateType); sert.IsActive = true; sert.Version = 1; if (s.SertificateUecs == null) { s.SertificateUecs = new List <SertificateUec>(); } s.SertificateUecs.Add(sert); } }
/// <summary> /// Возвращает ключ сертификата /// </summary> /// <param name="workstationName"> /// Имя машины в локальной сети ПВП /// </param> /// <param name="version"> /// Версия сертификата /// </param> /// <param name="type"> /// Тип сертификата /// </param> /// <returns> /// Ключ сертификата /// </returns> public byte[] GetCertificateKey(string workstationName, int version, int type) { var user = ObjectFactory.GetInstance <ISecurityProvider>().GetCurrentUser(); var sertificateUecManager = ObjectFactory.GetInstance <ISertificateUecManager>(); var organisationManager = ObjectFactory.GetInstance <IOrganisationManager>(); // Ищем сертификаты уровня рабочей станции var workstation = GetBy(x => x.Name == workstationName && x.PointDistributionPolicy.Id == user.PointDistributionPolicyId) .FirstOrDefault(); SertificateUec sert = null; if (workstation != null) { sert = sertificateUecManager.GetBy( x => x.IsActive && x.Version == version && x.Workstation.Id == workstation.Id && x.Type.Id == type).FirstOrDefault(); if (sert != null) { return(sert.Key); } } // Ищем сертификаты уровня СМО if (user.PointDistributionPolicyId != null) { var smo = organisationManager.GetById(user.PointDistributionPolicyId.Value); sert = sertificateUecManager.GetBy( x => x.IsActive && x.Version == version && x.Smo.Id == smo.Id && x.Type.Id == type) .FirstOrDefault(); } return(sert != null ? sert.Key : null); }