public async Task <IActionResult> Edit(int id, [Bind("ID,StudentID,CourseID")] Enrol enrol) { if (id != enrol.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(enrol); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EnrolExists(enrol.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CourseID"] = new SelectList(_context.Course, "CourseID", "CourseID", enrol.CourseID); ViewData["StudentID"] = new SelectList(_context.Student, "StudentID", "StudentID", enrol.StudentID); return(View(enrol)); }
public async Task <IActionResult> Create([Bind("ID,StudentID,CourseID")] Enrol enrol) { if (ModelState.IsValid) { _context.Add(enrol); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CourseID"] = new SelectList(_context.Course, "CourseID", "CourseID", enrol.CourseID); ViewData["StudentID"] = new SelectList(_context.Student, "StudentID", "StudentID", enrol.StudentID); return(View(enrol)); }
public static WirelessProfileStore ProvisionWirelessProfiles(this Device device, DiscoDataContext Database, Enrol Enrolment) { var profiles = new List<Models.ClientServices.EnrolmentInformation.WirelessProfile>(); var transformations = new List<Models.ClientServices.EnrolmentInformation.WirelessProfileTransformation>(); var removeNames = new List<string>(); foreach (var pluginFeature in device.DeviceProfile.GetWirelessProfileProviders()) { using (var providerFeature = pluginFeature.CreateInstance<WirelessProfileProviderFeature>()) { var pluginResult = providerFeature.ProvisionWirelessProfiles(Database, device, Enrolment); if (pluginResult.Profiles != null) { profiles.AddRange(pluginResult.Profiles.Select(p => new Models.ClientServices.EnrolmentInformation.WirelessProfile() { Name = p.Name, ProfileXml = p.ProfileXml, ForceDeployment = p.ForceDeployment })); } if (pluginResult.Transformations != null) { transformations.AddRange(pluginResult.Transformations.Select(p => new Models.ClientServices.EnrolmentInformation.WirelessProfileTransformation() { Name = p.Name, RegularExpression = p.RegularExpression, RegularExpressionReplacement = p.RegularExpressionReplacement })); } if (pluginResult.RemoveNames != null) { removeNames.AddRange(pluginResult.RemoveNames); } } } if (profiles.Count == 0 && transformations.Count == 0 && removeNames.Count == 0) { return null; } else { return new WirelessProfileStore() { Profiles = profiles.Count > 0 ? profiles : null, Transformations = transformations.Count > 0 ? transformations : null, RemoveNames = removeNames.Count > 0 ? removeNames : null }; } }
public abstract ProvisionAuthorityCertificatesResult ProvisionAuthorityCertificates(DiscoDataContext Database, Device Device, Enrol Enrolment);
protected virtual void OnEnrol(PrinterEventArgs e) { Enrol?.Invoke(this, e); }
public static EnrolResponse Enrol(DiscoDataContext Database, string Username, Enrol Request) { ADMachineAccount adMachineAccount = null; EnrolResponse response = new EnrolResponse(); AuthorizationToken authenticatedToken = null; bool isAuthenticated = false; ADDomain domain = null; Lazy<ADDomainController> domainController = new Lazy<ADDomainController>(() => { if (domain == null) throw new InvalidOperationException("The [domain] variable must be initialized first"); return domain.GetAvailableDomainController(RequireWritable: true); }); string sessionId = Guid.NewGuid().ToString("B"); response.SessionId = sessionId; EnrolmentLog.LogSessionStarting(sessionId, Request.SerialNumber, EnrolmentTypes.Normal); EnrolmentLog.LogSessionDeviceInfo(sessionId, Request); try { if (Request.SerialNumber.Contains("/") || Request.SerialNumber.Contains(@"\")) throw new EnrolmentSafeException(@"The serial number cannot contain '/' or '\' characters."); EnrolmentLog.LogSessionProgress(sessionId, 10, "Loading User Data"); if (!string.IsNullOrWhiteSpace(Username)) { authenticatedToken = UserService.GetAuthorization(Username, Database); isAuthenticated = (authenticatedToken != null); } EnrolmentLog.LogSessionProgress(sessionId, 13, "Loading Device Data"); Device RepoDevice = Database.Devices.Include("AssignedUser").Include("DeviceModel").Include("DeviceProfile").Where(d => d.SerialNumber == Request.SerialNumber).FirstOrDefault(); EnrolmentLog.LogSessionProgress(sessionId, 15, "Discovering User/Device Disco Permissions"); if (isAuthenticated) { if (!authenticatedToken.Has(Claims.Device.Actions.EnrolDevices)) { if (!authenticatedToken.Has(Claims.ComputerAccount)) throw new EnrolmentSafeException(string.Format("Connection not correctly authenticated (SN: {0}; Auth User: {1})", Request.SerialNumber, authenticatedToken.User.UserId)); if (domain == null) domain = ActiveDirectory.Context.GetDomainByName(Request.DNSDomainName); if (!authenticatedToken.User.UserId.Equals(string.Format(@"{0}\{1}$", domain.NetBiosName, Request.ComputerName), System.StringComparison.OrdinalIgnoreCase)) throw new EnrolmentSafeException(string.Format("Connection not correctly authenticated (SN: {0}; Auth User: {1})", Request.SerialNumber, authenticatedToken.User.UserId)); } } else { if (RepoDevice == null) { throw new EnrolmentSafeException(string.Format("Unknown Device Serial Number (SN: '{0}')", Request.SerialNumber)); } if (!RepoDevice.AllowUnauthenticatedEnrol) { if (RepoDevice.DeviceProfile.AllowUntrustedReimageJobEnrolment) { if (Database.Jobs.Count(j => j.DeviceSerialNumber == RepoDevice.SerialNumber && j.JobTypeId == JobType.JobTypeIds.SImg && !j.ClosedDate.HasValue) == 0) { throw new EnrolmentSafeException(string.Format("Device has no open 'Software - Reimage' job (SN: '{0}')", Request.SerialNumber)); } } else { throw new EnrolmentSafeException(string.Format("Device isn't allowed an Unauthenticated Enrolment (SN: '{0}')", Request.SerialNumber)); } } } if (Request.IsPartOfDomain && !string.IsNullOrWhiteSpace(Request.ComputerName)) { EnrolmentLog.LogSessionProgress(sessionId, 20, "Loading Active Directory Computer Account"); System.Guid? uuidGuid = null; System.Guid? macAddressGuid = null; if (!string.IsNullOrEmpty(Request.Hardware.UUID)) uuidGuid = ADMachineAccount.NetbootGUIDFromUUID(Request.Hardware.UUID); // Use non-Wlan Adapter with fastest speed var macAddress = Request.Hardware?.NetworkAdapters?.Where(na => !na.IsWlanAdapter).OrderByDescending(na => na.Speed).Select(na => na.MACAddress).FirstOrDefault(); if (!string.IsNullOrEmpty(macAddress)) macAddressGuid = ADMachineAccount.NetbootGUIDFromMACAddress(macAddress); if (domain == null) domain = ActiveDirectory.Context.GetDomainByName(Request.DNSDomainName); var requestDeviceId = string.Format(@"{0}\{1}", domain.NetBiosName, Request.ComputerName); adMachineAccount = domainController.Value.RetrieveADMachineAccount(requestDeviceId, uuidGuid, macAddressGuid); } if (RepoDevice == null) { EnrolmentLog.LogSessionProgress(sessionId, 30, "New Device, Creating Disco Instance"); EnrolmentLog.LogSessionTaskAddedDevice(sessionId, Request.SerialNumber); DeviceProfile deviceProfile = Database.DeviceProfiles.Find(Database.DiscoConfiguration.DeviceProfiles.DefaultDeviceProfileId); var deviceModelResult = Database.DeviceModels.GetOrCreateDeviceModel(Request.Hardware.Manufacturer, Request.Hardware.Model, Request.Hardware.ModelType); DeviceModel deviceModel = deviceModelResult.Item1; if (deviceModelResult.Item2) EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.SerialNumber, deviceModelResult.Item1.Manufacturer, deviceModelResult.Item1.Model); else EnrolmentLog.LogSessionDevice(sessionId, Request.SerialNumber, deviceModel.Id); if (domain == null) domain = ActiveDirectory.Context.GetDomainByName(Request.DNSDomainName); RepoDevice = new Device { SerialNumber = Request.SerialNumber, DeviceDomainId = string.Format(@"{0}\{1}", domain.NetBiosName, Request.ComputerName), DeviceProfile = deviceProfile, DeviceModel = deviceModel, AllowUnauthenticatedEnrol = false, CreatedDate = DateTime.Now, EnrolledDate = DateTime.Now, LastEnrolDate = DateTime.Now, DeviceDetails = new List<DeviceDetail>() }; Database.Devices.Add(RepoDevice); var lanMacAddresses = string.Join("; ", Request.Hardware.NetworkAdapters?.Where(na => !na.IsWlanAdapter).Select(na => na.MACAddress)); var wlanMacAddresses = string.Join("; ", Request.Hardware.NetworkAdapters?.Where(na => na.IsWlanAdapter).Select(na => na.MACAddress)); if (!string.IsNullOrEmpty(lanMacAddresses)) RepoDevice.DeviceDetails.LanMacAddress(RepoDevice, lanMacAddresses); if (!string.IsNullOrEmpty(wlanMacAddresses)) RepoDevice.DeviceDetails.WLanMacAddress(RepoDevice, wlanMacAddresses); } else { EnrolmentLog.LogSessionProgress(sessionId, 30, "Existing Device, Updating Disco Instance"); EnrolmentLog.LogSessionTaskUpdatingDevice(sessionId, Request.SerialNumber); var deviceModelResult = Database.DeviceModels.GetOrCreateDeviceModel(Request.Hardware.Manufacturer, Request.Hardware.Model, Request.Hardware.ModelType); DeviceModel deviceModel = deviceModelResult.Item1; if (deviceModelResult.Item2) EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.SerialNumber, deviceModelResult.Item1.Manufacturer, deviceModelResult.Item1.Model); else EnrolmentLog.LogSessionDevice(sessionId, Request.SerialNumber, deviceModel.Id); RepoDevice.DeviceModel = deviceModel; var lanMacAddresses = string.Join("; ", Request.Hardware.NetworkAdapters?.Where(na => !na.IsWlanAdapter).Select(na => na.MACAddress)); var wlanMacAddresses = string.Join("; ", Request.Hardware.NetworkAdapters?.Where(na => na.IsWlanAdapter).Select(na => na.MACAddress)); if (!string.IsNullOrEmpty(lanMacAddresses)) RepoDevice.DeviceDetails.LanMacAddress(RepoDevice, lanMacAddresses); if (!string.IsNullOrEmpty(wlanMacAddresses)) RepoDevice.DeviceDetails.WLanMacAddress(RepoDevice, wlanMacAddresses); if (!RepoDevice.EnrolledDate.HasValue) RepoDevice.EnrolledDate = DateTime.Now; RepoDevice.LastEnrolDate = DateTime.Now; } if (adMachineAccount == null) { if (RepoDevice.DeviceProfile.ProvisionADAccount) { EnrolmentLog.LogSessionProgress(sessionId, 50, "Provisioning an Active Directory Computer Account"); if (string.IsNullOrWhiteSpace(RepoDevice.DeviceProfile.OrganisationalUnit)) throw new InvalidOperationException("No Organisational Unit has been set in the device profile"); if (domain == null) domain = ActiveDirectory.Context.GetDomainFromDistinguishedName(RepoDevice.DeviceProfile.OrganisationalUnit); if (string.IsNullOrEmpty(RepoDevice.DeviceDomainId) || RepoDevice.DeviceProfile.EnforceComputerNameConvention) RepoDevice.DeviceDomainId = RepoDevice.ComputerNameRender(Database, domain); string offlineProvisionDiagnosicInfo; EnrolmentLog.LogSessionTaskProvisioningADAccount(sessionId, RepoDevice.SerialNumber, RepoDevice.DeviceDomainId); adMachineAccount = domainController.Value.RetrieveADMachineAccount(RepoDevice.DeviceDomainId); response.OfflineDomainJoinManifest = domainController.Value.OfflineDomainJoinProvision(RepoDevice.DeviceDomainId, RepoDevice.DeviceProfile.OrganisationalUnit, ref adMachineAccount, out offlineProvisionDiagnosicInfo); EnrolmentLog.LogSessionDiagnosticInformation(sessionId, offlineProvisionDiagnosicInfo); response.RequireReboot = true; } if (adMachineAccount != null) { response.ComputerName = adMachineAccount.Name; response.DomainName = adMachineAccount.Domain.NetBiosName; } else if (ActiveDirectory.IsValidDomainAccountId(RepoDevice.DeviceDomainId)) { string accountUsername; ADDomain accountDomain; ActiveDirectory.ParseDomainAccountId(RepoDevice.DeviceDomainId, out accountUsername, out accountDomain); response.DomainName = accountDomain == null ? null : accountDomain.NetBiosName; response.ComputerName = accountUsername; } else { response.DomainName = Request.DNSDomainName; response.ComputerName = Request.ComputerName; } } else { RepoDevice.DeviceDomainId = adMachineAccount.Id.Trim('$'); response.ComputerName = adMachineAccount.Name; response.DomainName = adMachineAccount.Domain.NetBiosName; // Enforce Computer Name Convention if (!adMachineAccount.IsCriticalSystemObject && RepoDevice.DeviceProfile.EnforceComputerNameConvention) { if (string.IsNullOrWhiteSpace(RepoDevice.DeviceProfile.OrganisationalUnit)) throw new InvalidOperationException("No Organisational Unit has been set in the device profile"); if (domain == null) domain = ActiveDirectory.Context.GetDomainFromDistinguishedName(RepoDevice.DeviceProfile.OrganisationalUnit); var calculatedComputerName = RepoDevice.ComputerNameRender(Database, domain); string calculatedAccountUsername; ActiveDirectory.ParseDomainAccountId(calculatedComputerName, out calculatedAccountUsername); if (!Request.ComputerName.Equals(calculatedAccountUsername, StringComparison.OrdinalIgnoreCase)) { EnrolmentLog.LogSessionProgress(sessionId, 50, string.Format("Renaming Device: {0} -> {1}", Request.ComputerName, calculatedComputerName)); EnrolmentLog.LogSessionTaskRenamingDevice(sessionId, Request.ComputerName, calculatedComputerName); RepoDevice.DeviceDomainId = calculatedComputerName; response.DomainName = domain.NetBiosName; response.ComputerName = calculatedAccountUsername; // Create New Account string offlineProvisionDiagnosicInfo; response.OfflineDomainJoinManifest = domainController.Value.OfflineDomainJoinProvision(RepoDevice.DeviceDomainId, RepoDevice.DeviceProfile.OrganisationalUnit, ref adMachineAccount, out offlineProvisionDiagnosicInfo); EnrolmentLog.LogSessionDiagnosticInformation(sessionId, offlineProvisionDiagnosicInfo); response.RequireReboot = true; } } // Enforce Organisational Unit if (!adMachineAccount.IsCriticalSystemObject && response.OfflineDomainJoinManifest == null && RepoDevice.DeviceProfile.EnforceOrganisationalUnit) { var parentDistinguishedName = adMachineAccount.ParentDistinguishedName; if (string.IsNullOrWhiteSpace(RepoDevice.DeviceProfile.OrganisationalUnit)) throw new InvalidOperationException(string.Format("The Organisational Unit for the Device Profile '{0}' [{1}] is not set.", RepoDevice.DeviceProfile.Name, RepoDevice.DeviceProfile.Id)); if (!parentDistinguishedName.Equals(RepoDevice.DeviceProfile.OrganisationalUnit, StringComparison.OrdinalIgnoreCase)) // Custom OU { var proposedDomain = ActiveDirectory.Context.GetDomainFromDistinguishedName(RepoDevice.DeviceProfile.OrganisationalUnit); var currentDomain = ActiveDirectory.Context.GetDomainFromDistinguishedName(parentDistinguishedName); if (currentDomain != proposedDomain) throw new NotSupportedException("Unable to move the devices organisational unit when the source and destination domains are different."); if (domain == null) domain = proposedDomain; else if (domain != proposedDomain) throw new NotSupportedException("To many domains involved in this enrolment, contact support regarding your scenario."); EnrolmentLog.LogSessionProgress(sessionId, 65, string.Format("Moving Device Organisational Unit: {0} -> {1}", parentDistinguishedName, RepoDevice.DeviceProfile.OrganisationalUnit)); EnrolmentLog.LogSessionTaskMovingDeviceOrganisationUnit(sessionId, parentDistinguishedName, RepoDevice.DeviceProfile.OrganisationalUnit); adMachineAccount.MoveOrganisationalUnit(domainController.Value, RepoDevice.DeviceProfile.OrganisationalUnit); response.RequireReboot = true; } } } if (adMachineAccount != null && !adMachineAccount.IsCriticalSystemObject) { EnrolmentLog.LogSessionProgress(sessionId, 75, "Updating Active Directory Computer Account Properties"); // Use non-Wlan Adapter with fastest speed var macAddress = Request.Hardware?.NetworkAdapters?.Where(na => !na.IsWlanAdapter).OrderByDescending(na => na.Speed).Select(na => na.MACAddress).FirstOrDefault(); adMachineAccount.UpdateNetbootGUID(Request.Hardware.UUID, macAddress); if (RepoDevice.AssignedUser != null) adMachineAccount.SetDescription(RepoDevice); } if (RepoDevice.DeviceProfile.DistributionType == DeviceProfile.DistributionTypes.OneToOne) { if (RepoDevice.AssignedUser == null) { response.AllowBootstrapperUninstall = false; } else { EnrolmentLog.LogSessionProgress(sessionId, 80, "Retrieving Active Directory Assigned User Account"); ADUserAccount AssignedUserInfo = ActiveDirectory.RetrieveADUserAccount(RepoDevice.AssignedUser.UserId); EnrolmentLog.LogSessionTaskAssigningUser(sessionId, RepoDevice.SerialNumber, AssignedUserInfo.DisplayName, AssignedUserInfo.SamAccountName, AssignedUserInfo.Domain.NetBiosName, AssignedUserInfo.SecurityIdentifier.ToString()); response.AllowBootstrapperUninstall = true; response.AssignedUserIsLocalAdmin = RepoDevice.DeviceProfile.AssignedUserLocalAdmin; response.AssignedUserUsername = AssignedUserInfo.SamAccountName; response.AssignedUserDomain = AssignedUserInfo.Domain.NetBiosName; response.AssignedUserDescription = AssignedUserInfo.DisplayName; response.AssignedUserSID = AssignedUserInfo.SecurityIdentifier.ToString(); } } else { response.AllowBootstrapperUninstall = true; } // Provision Certificates if (!string.IsNullOrEmpty(RepoDevice.DeviceProfile.CertificateProviders) || !string.IsNullOrEmpty(RepoDevice.DeviceProfile.CertificateAuthorityProviders)) { EnrolmentLog.LogSessionProgress(sessionId, 90, "Provisioning Certificates"); List<DeviceCertificate> provisionedCertificates; var provisionResult = RepoDevice.ProvisionCertificates(Database, Request, out provisionedCertificates); if (provisionedCertificates != null && provisionedCertificates.Count > 0) { foreach (var deviceCertificate in provisionedCertificates) { EnrolmentLog.LogSessionTaskProvisioningCertificate(sessionId, RepoDevice.SerialNumber, deviceCertificate.Name); } } response.Certificates = provisionResult; } // Provision Wireless Profiles if (!string.IsNullOrEmpty(RepoDevice.DeviceProfile.WirelessProfileProviders)) { EnrolmentLog.LogSessionProgress(sessionId, 95, "Provisioning Wireless Profiles"); var provisionResult = RepoDevice.ProvisionWirelessProfiles(Database, Request); if (provisionResult != null && provisionResult.Profiles != null) { foreach (var wirelessProfiles in provisionResult.Profiles) { EnrolmentLog.LogSessionTaskProvisioningWirelessProfile(sessionId, RepoDevice.SerialNumber, wirelessProfiles.Name); } } response.WirelessProfiles = provisionResult; } // Reset 'AllowUnauthenticatedEnrol' if (RepoDevice.AllowUnauthenticatedEnrol) RepoDevice.AllowUnauthenticatedEnrol = false; EnrolmentLog.LogSessionProgress(sessionId, 100, "Completed Successfully"); } catch (EnrolmentSafeException ex) { EnrolmentLog.LogSessionError(sessionId, ex); return new EnrolResponse { SessionId = sessionId, ErrorMessage = ex.Message }; } catch (System.Exception ex2) { ex2.ToExceptionless().Submit(); EnrolmentLog.LogSessionError(sessionId, ex2); throw ex2; } finally { EnrolmentLog.LogSessionFinished(sessionId); } return response; }
public abstract ProvisionWirelessProfilesResult ProvisionWirelessProfiles(DiscoDataContext Database, Device Device, Enrol Enrolment);
public static CertificateStore ProvisionCertificates(this Device device, DiscoDataContext Database, Enrol Enrolment, out List<DeviceCertificate> ProvisionedCertificates) { var personalCertificates = new List<byte[]>(); var personalCertificatesRemove = new List<string>(); var intermediateCertificates = new List<byte[]>(); var intermediateCertificatesRemove = new List<string>(); var trustedRootCertificates = new List<byte[]>(); var trustedRootCertificatesRemove = new List<string>(); ProvisionedCertificates = new List<DeviceCertificate>(); foreach (var pluginFeature in device.DeviceProfile.GetCertificateProviders()) { using (var providerFeature = pluginFeature.CreateInstance<CertificateProviderFeature>()) { var personalResult = providerFeature.ProvisionPersonalCertificate(Database, device, Enrolment); if (personalResult != null) { if (personalResult.AllocatedCertificates != null && personalResult.AllocatedCertificates.Count > 0) { // Avoid transporting certificates if they are already installed foreach (var certificate in personalResult.AllocatedCertificates) { var x509Certificate = new X509Certificate2(certificate.Content, "password"); if (!Enrolment.Certificates.Any(c => c.Thumbprint.Equals(x509Certificate.Thumbprint, StringComparison.OrdinalIgnoreCase))) { personalCertificates.Add(certificate.Content); ProvisionedCertificates.Add(certificate); } } } if (personalResult.RemoveCertificateThumbprints != null && personalResult.RemoveCertificateThumbprints.Count > 0) { personalCertificatesRemove.AddRange(personalResult.RemoveCertificateThumbprints); } } } } foreach (var pluginFeature in device.DeviceProfile.GetCertificateAuthorityProviders()) { using (var providerFeature = pluginFeature.CreateInstance<CertificateAuthorityProviderFeature>()) { var caResult = providerFeature.ProvisionAuthorityCertificates(Database, device, Enrolment); if (caResult.TrustedRootCertificates != null && caResult.TrustedRootCertificates.Count > 0) { trustedRootCertificates.AddRange(caResult.TrustedRootCertificates); } if (caResult.TrustedRootCertificateRemoveThumbprints != null && caResult.TrustedRootCertificateRemoveThumbprints.Count > 0) { trustedRootCertificatesRemove.AddRange(caResult.TrustedRootCertificateRemoveThumbprints); } if (caResult.IntermediateCertificates != null && caResult.IntermediateCertificates.Count > 0) { intermediateCertificates.AddRange(caResult.IntermediateCertificates); } if (caResult.IntermediateCertificateRemoveThumbprints != null && caResult.IntermediateCertificateRemoveThumbprints.Count > 0) { intermediateCertificatesRemove.AddRange(caResult.IntermediateCertificateRemoveThumbprints); } } } if (personalCertificates.Count == 0 && personalCertificatesRemove.Count == 0 && intermediateCertificates.Count == 0 && intermediateCertificatesRemove.Count == 0 && trustedRootCertificates.Count == 0 && trustedRootCertificatesRemove.Count == 0) { return null; } else { return new CertificateStore() { TrustedRootCertificates = trustedRootCertificates.Count > 0 ? trustedRootCertificates : null, TrustedRootRemoveThumbprints = trustedRootCertificatesRemove.Count > 0 ? trustedRootCertificatesRemove : null, IntermediateCertificates = intermediateCertificates.Count > 0 ? intermediateCertificates : null, IntermediateRemoveThumbprints = intermediateCertificatesRemove.Count > 0 ? intermediateCertificatesRemove : null, PersonalCertificates = personalCertificates.Count > 0 ? personalCertificates : null, PersonalRemoveThumbprints = personalCertificatesRemove.Count > 0 ? personalCertificatesRemove : null }; } }
public static void LogSessionDeviceInfo(string SessionId, Enrol Request) { EnrolmentLog.LogSessionDeviceInfo(SessionId, Request.SerialNumber, Request.Hardware.UUID, Request.ComputerName, null, null, Request.Hardware.Manufacturer, Request.Hardware.Model, Request.Hardware.ModelType); }
public abstract ProvisionPersonalCertificateResult ProvisionPersonalCertificate(DiscoDataContext Database, Device Device, Enrol Enrolment);
public static bool Enrol() { try { Enrol request; EnrolResponse response = null; // Build Request Presentation.UpdateStatus("Enrolling Device", "Building enrolment request and preparing to send data to the server.", true, -1); request = new Enrol(); request.Build(); // Send Request Presentation.UpdateStatus("Enrolling Device", "Sending the enrolment request to the server.", true, -1); response = request.Post(Program.IsAuthenticated); // Process Response Presentation.UpdateStatus("Enrolling Device", "Processing the enrolment response from the server.", true, -1); response.Process(); // Complete return true; } catch (Exception ex) { ErrorReporting.ReportError(ex, true); return false; } }