public Static(AppFunc app, string root = null, IEnumerable<string> urls = null) { this.app = app; if (root == null) { root = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "public"); } if (!Directory.Exists(root)) { throw new DirectoryNotFoundException(string.Format("Invalid root directory: {0}", root)); } if (urls == null) { var rootDirectory = new DirectoryInfo(root); var files = rootDirectory.GetFiles("*").Select(fi => "/" + fi.Name); var directories = rootDirectory.GetDirectories().Select(di => "/" + di.Name); urls = files.Concat(directories); } this.urls = urls; fileServer = new FileServer(root); }
public override bool FinishedLaunching (UIApplication app, NSDictionary options) { // FIXME: Figure out how to pass and receive arguments // in MonoTouch applications. The Main method // has an empty array and NSProcessInfo has // values specific to Mono launching/debugging. MobileInterface.RunAsync (new string [0]); _fileServer = new FileServer (); _fileServer.Prefixes.Add("http://+:6599/"); _fileServer.Start (); return true; }
static void Main(string[] args) { try { if( args.Length < 1 ) { Console.WriteLine("Please select one of the following numbers:"); Console.WriteLine("\t1. Basic connection example"); Console.WriteLine("\t2. Intermediate example using CTCP"); Console.WriteLine("\t3. Advanced example with a custom parser"); Console.WriteLine("\t4. DCC Chat example"); Console.WriteLine("\t5. Simple DCC file server (needs directory as second arg)"); Console.WriteLine("\t6. DCC file downloader (needs directory as second arg)"); #if SSL Console.WriteLine("\t7. Secure connection example"); #endif return; } int choice = int.Parse( args[0] ); switch( choice ) { case 1: Basic basic = new Basic(); basic.start(); break; case 2: Intermediate intermediate = new Intermediate(); intermediate.start(); break; case 3: Advanced advanced = new Advanced(); advanced.start(); break; case 4: ChatBot chatBot = new ChatBot(); chatBot.start(); break; case 5: FileServer fileServer = new FileServer( args[1] ); fileServer.start(); break; case 6: FileClient fileClient = new FileClient( args[1] ); fileClient.start(); break; #if SSL case 7: Secure secure = new Secure(); secure.start(); break; #endif default: #if SSL Console.WriteLine("Please choose an example form 1 to 7."); #else Console.WriteLine("Please choose an example form 1 to 6."); #endif break; } } catch( FormatException fe ) { Console.WriteLine("The first argument must be a number."); } catch( Exception e ) { Console.WriteLine("Unanticipated exception " + e ); } }
public static string GetFullPath(FileServer fileServer, string path) { return((fileServer == null || path == null) ? null : string.Format("http://{0}/{1}", fileServer.ServerUri ?? fileServer.ServerIP, path)); }
private void SelectFromFileMenuItem_Click(object sender, System.EventArgs e) { FileServer fs; string filename; string[] loadedItems; bool isUnknownItem; try { //Get file name. MyOpenFileDialog.ShowDialog(); filename = MyOpenFileDialog.FileName; if (filename == "") { return; } if (MyParentForm != null) { MyParentForm.Cursor = Cursors.WaitCursor; } //Load file. fs = new FileServer(); loadedItems = fs.ReadSingleColumn(filename); if (loadedItems.GetLength(0) < 1) { if (MyParentForm != null) { MyParentForm.Cursor = Cursors.Default; } return; } //See if there are loaded items which are not //in the list view. for (int i = 0; i < loadedItems.GetLength(0); i++) { isUnknownItem = true; for (int j = 0; j < MyExtListView.Items.Count; j++) { if (MyExtListView.Items[j].Text.ToUpper() == loadedItems[i].ToUpper()) { isUnknownItem = false; break; //Exit for. } } if (isUnknownItem) { if (MyParentForm != null) { MyParentForm.Cursor = Cursors.Default; } MessageManager.ShowWarning("The item " + loadedItems[i] + " in the file is not present in the list.", MyParentForm); return; } } //Clear selection. for (int j = 0; j < MyExtListView.Items.Count; j++) { ((ListViewItem)MyExtListView.Items[j]).Selected = false; } //Select the loaded items. for (int i = 0; i < loadedItems.GetLength(0); i++) { for (int j = 0; j < MyExtListView.Items.Count; j++) { if (MyExtListView.Items[j].Text.ToUpper() == loadedItems[i].ToUpper()) { ((ListViewItem)MyExtListView.Items[j]).Selected = true; break; //Exit for. } } } if (MyParentForm != null) { MyParentForm.Cursor = Cursors.Default; } } catch (Exception ex) { MessageManager.ShowError(ex, "Unable to select items from file.", MyParentForm); } }
public static FileServer DetermineFileServer(Service service, BackupType backupType) { var s3FileServerIds = new List <int>(); var ftpFileServerIds = new List <int>(); Server server; Datacenter datacenter; if (TCAdmin.SDK.Utility.IsWebEnvironment()) { service = Service.GetSelectedService(); server = Server.GetSelectedServer(); datacenter = Datacenter.GetSelectedDatacenter(); } else { server = new Server(service.ServerId); datacenter = new Datacenter(server.DatacenterId); } if (service.Variables["BACKUP:FILESERVERMODEL"] != null) { var model = JsonConvert.DeserializeObject <FileServerModel>(service.Variables["BACKUP:FILESERVERMODEL"] .ToString()); s3FileServerIds.Add(model.S3FileServerId); ftpFileServerIds.Add(model.FtpFileServerId); } else if (!string.IsNullOrEmpty(server.CustomField15)) { var model = JsonConvert.DeserializeObject <FileServerModel>(server.CustomField15); s3FileServerIds.Add(model.S3FileServerId); ftpFileServerIds.Add(model.FtpFileServerId); } else if (!string.IsNullOrEmpty(datacenter.CustomField15)) { var model = JsonConvert.DeserializeObject <FileServerModel>(datacenter.CustomField15); s3FileServerIds.Add(model.S3FileServerId); ftpFileServerIds.Add(model.FtpFileServerId); } // Add absolutely last default servers. s3FileServerIds.AddRange(FileServer.GetFileServers().S3FileServers() .Select(s3FileServer => s3FileServer.FileServerId)); ftpFileServerIds.AddRange(FileServer.GetFileServers().FtpFileServers() .Select(s3FileServer => s3FileServer.FileServerId)); switch (backupType) { case BackupType.S3: var s3ValidFileServerId = s3FileServerIds.FirstOrDefault(x => x != -1); return(new FileServer(s3ValidFileServerId)); case BackupType.Ftp: var ftpValidFileServerId = ftpFileServerIds.FirstOrDefault(x => x != -1); return(new FileServer(ftpValidFileServerId)); case BackupType.Local: var customFileServer = new FileServer(); customFileServer.FileServerId = -10; return(customFileServer); } return(FileServer.GetSelectedFileServer()); }
private void AccessFile(string sharePath, string fileName, FileServer fileServer, byte[] gssApiToken, EncryptionKey subkey, bool expectAccessDeny) { BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Create a SMB2 Client and Negotiate"); Smb2FunctionalTestClient smb2Client = new Smb2FunctionalTestClient(KerberosConstValue.TIMEOUT_FOR_SMB2AP); smb2Client.ConnectToServerOverTCP(System.Net.IPAddress.Parse(fileServer.IPAddress)); DialectRevision smb2Dialect = (DialectRevision)Enum.Parse(typeof(DialectRevision), fileServer.Smb2Dialect); DialectRevision selectedDialect; uint status = smb2Client.Negotiate( new DialectRevision[] { smb2Dialect }, SecurityMode_Values.NONE, Capabilities_Values.GLOBAL_CAP_DFS, Guid.NewGuid(), out selectedDialect); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Negotiate failed with error: {0}", status); byte[] repToken; BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Session Setup"); status = smb2Client.SessionSetup( SESSION_SETUP_Request_SecurityMode_Values.NONE, SESSION_SETUP_Request_Capabilities_Values.GLOBAL_CAP_DFS, SecurityPackageType.Kerberos, fileServer.FQDN, gssApiToken, out repToken); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Session setup failed with error: {0}", status); KerberosApResponse apRep = client.GetApResponseFromToken(repToken); // Get subkey from AP response, which used for signing in smb2 apRep.Decrypt(subkey.keyvalue.ByteArrayValue); smb2Client.SetSessionSigningAndEncryption(true, false, apRep.ApEncPart.subkey.keyvalue.ByteArrayValue); BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Tree Connect"); uint treeId; string path = @"\\" + fileServer.FQDN + @"\" + sharePath; status = smb2Client.TreeConnect(path, out treeId); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "TreeConnect failed with error: {0}", status); BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Create"); Smb2CreateContextResponse[] serverCreateContexts; FILEID fileId; status = smb2Client.Create( treeId, fileName, CreateOptions_Values.FILE_NON_DIRECTORY_FILE, out fileId, out serverCreateContexts, RequestedOplockLevel_Values.OPLOCK_LEVEL_LEASE, new Smb2CreateContextRequest[] { new Smb2CreateRequestLeaseV2 { LeaseKey = Guid.NewGuid(), LeaseState = LeaseStateValues.SMB2_LEASE_READ_CACHING | LeaseStateValues.SMB2_LEASE_HANDLE_CACHING | LeaseStateValues.SMB2_LEASE_WRITE_CACHING, } }, checker: SkipResponseCheck); if (expectAccessDeny) { BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_ACCESS_DENIED, status, "Create Operation should fail due to STATUS_ACCESS_DENIED, the received status is: {0}", status); } else { // Create success BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Create failed with error: {0}", status); BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Close"); status = smb2Client.Close(treeId, fileId); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Close failed with error: {0}", status); } BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Tree Disconnect"); status = smb2Client.TreeDisconnect(treeId); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Tree Disconnect failed with error: {0}", status); BaseTestSite.Log.Add(LogEntryKind.Comment, "AccessFile: Logoff"); status = smb2Client.LogOff(); BaseTestSite.Assert.AreEqual(Smb2Status.STATUS_SUCCESS, status, "Logoff failed with error: {0}", status); smb2Client.Disconnect(); }
protected virtual void MatchFileServer() { #region _FileServerMap = SiteConfigManager.Intance.FileServerMapList.GetFileServerMap(_UploadFileEntity.UploadDate, _ServiceType); if (_FileServerMap == null) { throw new Exception("查询不到文件服务器匹配节点"); } else { _FileServer = SiteConfigManager.Intance.FileServerList.GetFileServer(_FileServerMap.MapName); if (_FileServer == null) { throw new Exception("根据节点‘" + _FileServerMap.MapName + "’查询不到服务器"); } } FileServerRootPath = _FileServer.RootPath; #endregion }
private void DAC_Smb2_AccessFile(string RealmName, User user, Computer kdc, TransportType transportType, FileServer fileserver, string filePath, string fileName, bool expectAccessDeny) { base.Logging(); client = new KerberosTestClient(RealmName, user.Username, user.Password, KerberosAccountType.User, kdc.IPAddress, kdc.Port, transportType, testConfig.SupportedOid); //Create and send AS request KdcOptions options = KdcOptions.FORWARDABLE | KdcOptions.CANONICALIZE | KdcOptions.RENEWABLE; client.SendAsRequest(options, null); //Recieve preauthentication required error METHOD_DATA methodData; KerberosKrbError krbError = client.ExpectPreauthRequiredError(out methodData); //Create sequence of PA data string timeStamp = KerberosUtility.CurrentKerberosTime.Value; PaEncTimeStamp paEncTimeStamp = new PaEncTimeStamp(timeStamp, 0, client.Context.SelectedEType, this.client.Context.CName.Password, this.client.Context.CName.Salt); PaPacRequest paPacRequest = new PaPacRequest(true); Asn1SequenceOf <PA_DATA> seqOfPaData = new Asn1SequenceOf <PA_DATA>(new PA_DATA[] { paEncTimeStamp.Data, paPacRequest.Data }); //Create and send AS request client.SendAsRequest(options, seqOfPaData); KerberosAsResponse asResponse = client.ExpectAsResponse(); BaseTestSite.Assert.IsNotNull(asResponse.Response.ticket, "AS response should contain a TGT."); //Create and send TGS request client.SendTgsRequest(fileserver.Smb2ServiceName, options); KerberosTgsResponse tgsResponse = client.ExpectTgsResponse(); BaseTestSite.Assert.AreEqual(fileserver.Smb2ServiceName, KerberosUtility.PrincipalName2String(tgsResponse.Response.ticket.sname), "Service principal name in service ticket should match expected."); EncryptionKey key = testConfig.QueryKey(fileserver.Smb2ServiceName, client.Context.Realm.ToString(), client.Context.SelectedEType); tgsResponse.DecryptTicket(key); BaseTestSite.Assert.AreEqual(RealmName.ToLower(), tgsResponse.TicketEncPart.crealm.Value.ToLower(), "Realm name in service ticket encrypted part should match expected."); BaseTestSite.Assert.AreEqual(user.Username.ToLower(), KerberosUtility.PrincipalName2String(tgsResponse.TicketEncPart.cname).ToLower(), "User name in service ticket encrypted part should match expected."); //Assert authorization data if (this.testConfig.IsKileImplemented) { BaseTestSite.Assert.IsNotNull(tgsResponse.TicketEncPart.authorization_data, "The ticket contains Authorization data."); AdWin2KPac adWin2kPac = FindOneInAuthData <AdWin2KPac>(tgsResponse.TicketEncPart.authorization_data.Elements); BaseTestSite.Assert.IsNotNull(adWin2kPac, "The Authorization data contains AdWin2KPac."); } AuthorizationData data = null; EncryptionKey subkey = KerberosUtility.GenerateKey(client.Context.SessionKey); byte[] token = client.CreateGssApiToken(ApOptions.MutualRequired, data, subkey, ChecksumFlags.GSS_C_MUTUAL_FLAG | ChecksumFlags.GSS_C_INTEG_FLAG); BaseTestSite.Log.Add(LogEntryKind.Comment, "Logon to fileserver and Access File."); AccessFile(filePath, fileName, fileserver, token, tgsResponse.EncPart.key, expectAccessDeny); }
/// <summary> /// Initializes the FFT for the required signal size /// </summary> /// <param name="_device"></param> /// <param name="_signalSize">The size of the signals to process</param> public FFT1D_GPU(Device _device, int _signalSize) { // Check Power Of Two m_size = _signalSize; float fPOT = (float)(Math.Log(m_size) / Math.Log(2.0)); m_POT = (int)Math.Floor(fPOT); if (fPOT != m_POT) { throw new Exception("Signal size is not a Power Of Two!"); } if (m_POT < 8 || m_POT > 12) { throw new Exception("GPU FFT implementation only supports the following sizes: { 256, 512, 1024, 2048, 4096 }!"); } // Ensure permutations for FFT are _always_ a bit-reversal pattern! // for ( int i=0; i < m_size; i++ ) { // uint j = PermutationTables.ReverseBits( (uint) i, m_POT ); // if ( j != PermutationTables.ms_tables[m_POT][i] ) // throw new Exception( "RHA!" ); // } // Initialize DX stuff m_device = _device; m_CB = new ConstantBuffer <CB>(m_device, 0); m_texBufferIn = new Texture2D(m_device, (uint)m_size, 1, 1, 1, ImageUtility.PIXEL_FORMAT.RG32F, ImageUtility.COMPONENT_FORMAT.AUTO, false, true, null); m_texBufferOut = new Texture2D(m_device, (uint)m_size, 1, 1, 1, ImageUtility.PIXEL_FORMAT.RG32F, ImageUtility.COMPONENT_FORMAT.AUTO, false, true, null); m_texBufferCPU = new Texture2D(m_device, (uint)m_size, 1, 1, 1, ImageUtility.PIXEL_FORMAT.RG32F, ImageUtility.COMPONENT_FORMAT.AUTO, true, true, null); try { FileServer server = new FileServer(Properties.Resources.ResourceManager); // FileServer server = new FileServer( new System.IO.DirectoryInfo( @"../../MathFFT/Shaders/" ) ); Shader.AssertOnSaveBinaryBlobFailed = false; #if DEBUG m_CS__1to256 = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__1to256", server); switch (m_POT) { case 8: m_CS__Remainder = null; break; case 9: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to512", server); break; case 10: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to1024", server); break; case 11: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to2048", server); break; case 12: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to4096", server); break; } #else using (new ScopedForceShadersLoadFromBinary()) { m_CS__1to256 = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__1to256", server); switch (m_POT) { case 8: m_CS__Remainder = null; break; case 9: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to512", server); break; case 10: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to1024", server); break; case 11: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to2048", server); break; case 12: m_CS__Remainder = new ComputeShader(_device, new System.IO.FileInfo(@"./Shaders/FFT1D.hlsl"), "CS__256to4096", server); break; } } #endif } catch (Exception _e) { m_device = null; throw new Exception("An error occurred while creating FFT1D shaders!", _e); } }
/// <summary> /// Creates or updates the file server. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='deviceName'> /// The device name. /// </param> /// <param name='fileServerName'> /// The file server name. /// </param> /// <param name='fileServer'> /// The file server. /// </param> /// <param name='resourceGroupName'> /// The resource group name /// </param> /// <param name='managerName'> /// The manager name /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <FileServer> BeginCreateOrUpdateAsync(this IFileServersOperations operations, string deviceName, string fileServerName, FileServer fileServer, string resourceGroupName, string managerName, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(deviceName, fileServerName, fileServer, resourceGroupName, managerName, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Creates or updates the file server. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='deviceName'> /// The device name. /// </param> /// <param name='fileServerName'> /// The file server name. /// </param> /// <param name='fileServer'> /// The file server. /// </param> /// <param name='resourceGroupName'> /// The resource group name /// </param> /// <param name='managerName'> /// The manager name /// </param> public static FileServer BeginCreateOrUpdate(this IFileServersOperations operations, string deviceName, string fileServerName, FileServer fileServer, string resourceGroupName, string managerName) { return(operations.BeginCreateOrUpdateAsync(deviceName, fileServerName, fileServer, resourceGroupName, managerName).GetAwaiter().GetResult()); }
private FileServer ObterObjetoFileServer() { FileServer mediaServer = null; if (Request["Id"] != null) { mediaServer = new ManterFileServer().ObterFileServerPorID(int.Parse(Request["Id"].ToString())); mediaServer.NomeDoArquivoOriginal = txtNomeDoArquivoOriginal.Text; } else { mediaServer = new FileServer(); } if (fupldArquivoEnvio != null && fupldArquivoEnvio.PostedFile != null && fupldArquivoEnvio.PostedFile.ContentLength > 0) { try { var caminhoDiretorioUpload = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro; var nomeAleatorioDoArquivoParaUploadCriptografado = WebFormHelper.ObterStringAleatoria(); var diretorioDeUploadComArquivo = string.Concat(caminhoDiretorioUpload, @"\", nomeAleatorioDoArquivoParaUploadCriptografado); try { //Salva o arquivo no caminho especificado fupldArquivoEnvio.PostedFile.SaveAs(diretorioDeUploadComArquivo); } catch { //Todo: -> Logar o Erro throw new AcademicoException("Ocorreu um erro ao Salvar o arquivo"); } mediaServer.NomeDoArquivoNoServidor = nomeAleatorioDoArquivoParaUploadCriptografado; mediaServer.NomeDoArquivoOriginal = !String.IsNullOrWhiteSpace(txtNomeDoArquivoOriginal.Text) ? txtNomeDoArquivoOriginal.Text : fupldArquivoEnvio.FileName; mediaServer.TipoArquivo = fupldArquivoEnvio.PostedFile.ContentType; mediaServer.Uf = mediaServer.Uf ?? new ManterUf().ObterUfPorID( new ManterUsuario().ObterUsuarioLogado().UF.ID); } catch (AcademicoException ex) { throw ex; } catch { //Todo: -> Logar erro throw new AcademicoException("Ocorreu um Erro ao Salvar o arquivo"); } } else { if (Request["Id"] == null) { throw new AcademicoException("Nenhum arquivo informado."); } } mediaServer.MediaServer = true; return(mediaServer); }
public JsonResult GetCommonParam() { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(); FileServer fileServer = this.Engine.FilePolicyManager.GetDefaultFileServer(); //系统设置模型 CommonParamViewModel model = new CommonParamViewModel() { Password = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_UserInitialPassword), AgencyIdentity = CustomSetting.GetAgencyIdentityType(Engine.SettingManager).ToString(), ExceptionManager = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_ExceptionManager), SequenceNoModal = CustomSetting.GetSequenceNoModal(Engine.SettingManager).ToString(), SequenceNoDateFormat = CustomSetting.GetSequenceNoDateFormat(Engine.SettingManager).ToString(), SequenceNoOrder = CustomSetting.GetSequenceNoOrder(Engine.SettingManager).ToString(), SequenceNoLength = CustomSetting.GetSequenceNoLength(Engine.SettingManager).ToString(), SequenceNoResetType = CustomSetting.GetGlobalSeqResetType(this.Engine.SettingManager).ToString(), NextInstanceID = GetNextInstanceID(), OvertimeCheckInterval = CustomSetting.GetOvertimeCheckInterval(this.Engine.SettingManager).ToString(), RemoteHubAddress = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_RemoteStubAddress), WikiUrl = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_WikiUrl), StorageMethod = ((int)fileServer.StorageType).ToString(), ClientMethod = ((int)fileServer.DownloadType).ToString(), SQLPool = fileServer.DbCode, FTPServer = fileServer.ServerHost, FTPServerPort = fileServer.ServerPort.ToString() ?? "21", FTPAcount = fileServer.Account, FTPPassWord = fileServer.Password, FTPUrl = fileServer.DownloadUrl, BasePath = fileServer.BasePath, CorpID = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_WeChatCorpID), Secret = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_WeChatSecret), MessageSecret = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_WeChatMessageSecret), WeChatProID = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_WeChatAgentId), WeChatMsgUrl = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_PortalUrl), AppKey = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_JPushAppKey), MasterSecret = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_JPushMasterSecret), AppName = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_JPushAppName), DDCorpID = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_DDCorpID), DDMsgUrl = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_DDUrl), DDPcMsgUrl = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_DDPcUrl), DDProID = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_DDAgentId), DDSecret = Engine.SettingManager.GetCustomSetting(CustomSetting.Setting_DDSecret) }; //流水号的日期格式 List <Item> sequenceNoDateFormats = InitSequenceNoDateFormats(); //流水号的模式 List <Item> sequenceNoModals = InitSequenceNoModals(); //委托身份 List <Item> agencyIdentitys = InitAgencyIdentitys(); //流水号的顺序 List <Item> sequenceNoOrders = InitSequenceNoOrders(); //流水号的长度 List <Item> sequenceNoLengths = InitSequenceNoLengths(); //流水号的重置策略 List <Item> sequenceNoResetTypes = InitRestTypes(); //用户选择的方式 List <Item> clientMethods = InitClientMethods(); //存储策略 List <Item> storageMethods = InitStorageMethods(); //数据库连接池 List <Item> sqlPools = InitSqlPools(); result.Extend = new { CommonParam = model, SequenceNoDateFormats = sequenceNoDateFormats, SequenceNoModals = sequenceNoModals, AgencyIdentitys = agencyIdentitys, SequenceNoOrders = sequenceNoOrders, SequenceNoLengths = sequenceNoLengths, SequenceNoResetTypes = sequenceNoResetTypes, StorageMethods = storageMethods, ClientMethods = clientMethods, SQLPools = sqlPools }; result.Success = true; return Json(result, JsonRequestBehavior.AllowGet); })); }
public static void Main() { TimeCounter timeCounter = new TimeCounter(); TimeSpan elapsed = TimeSpan.Zero; int i = 0; // Try to get clock at system start try { var time = NtpClient.GetNetworkTime(); Utility.SetLocalTime(time); } catch (Exception ex) { // Don't depend on time Debug.Print("Error setting clock: " + ex.Message); } // On board led OutputPort onBoardLed = new OutputPort(Pins.ONBOARD_LED, false); // Humidity and Temperature Sensor = new Dht22Sensor(Pins.GPIO_PIN_D0, Pins.GPIO_PIN_D1, PullUpResistor.Internal); //IRRX: Infrared Decoder NecProtocolDecoder decoder = new NecProtocolDecoder(Pins.GPIO_PIN_D7); NecProtocolDecoder.OnIRCommandReceived += NecDecoder_OnIRCommandReceived; //IRTX: Infrared Encoder IRCodec1 = new InfraredCodecNEC(new InfraredTransmitter(Pins.GPIO_PIN_D8)); IRCodec2 = new InfraredCodecNEC(new InfraredTransmitter(Pins.GPIO_PIN_D9)); Thread.Sleep(1000); // Web Server ServerConfiguration = new Configuration(80); ServerCredential = new Credential("Administrator", "admin", "admin"); Server = new HttpServer(ServerConfiguration, ServerCredential, @"\SD\"); Server.OnServerError += new OnServerErrorDelegate(Server_OnServerError); Server.OnRequestReceived += new OnRequestReceivedDelegate(Server_OnRequestReceived); Server.Start(); // File Server FileServer server = new FileServer(@"\SD\", 1554); while (true) { timeCounter.Start(); { elapsed += timeCounter.Elapsed; if (elapsed.Seconds >= 1) { if (Sensor.Read()) { temperature = Sensor.Temperature; humidity = Sensor.Humidity; status = "DHT Sensor: RH = " + humidity.ToString("F1") + "% Temp = " + temperature.ToString("F1") + "°C "; } elapsed = TimeSpan.Zero; onBoardLed.Write((i++ & 0x01) == 0); // blink on board led //if ((i & 0x01) == 0) //{ // if ((i & 0x02) == 0) // { // IRCodec1.Send(0x00, 0x00); // } // else // { // IRCodec1.Send(0xFF, 0xFF); // } //} //else //{ // if ((i & 0x02) == 0) // { // IRCodec2.Send(0x00, 0x00); // } // else // { // IRCodec2.Send(0xFF, 0xFF); // } //} //if ((i & 0x01) == 0) //{ // if ((i & 0x02) == 0) // { // IRCodec1.Send(0x10, 0x0D); // } // else // { // IRCodec1.Send(0x10, 0x1F); // } //} //else //{ // if ((i & 0x02) == 0) // { // IRCodec2.Send(0x10, 0x03); // } // else // { // IRCodec2.Send(0x10, 0x02); // } //} //if ((i & 0x01) == 0) //{ // IRCodec1.Send(0x10, 0x0D); // IRCodec2.Send(0x10, 0x03); //} //else //{ // IRCodec1.Send(0x10, 0x1F); // IRCodec2.Send(0x10, 0x02); //} //string log = "DHT Sensor: RH = " + humidity.ToString("F1") + // "% Temp = " + temperature.ToString("F1") + "°C "; //Debug.Print(log); } } timeCounter.Stop(); } }
/// <summary> /// ���ļ������ /// </summary> /// <param name="code"></param> private void OpenFileServer() { fileChick = new FileServer(filePort); fileThread = new Thread(new ThreadStart(fileChick.Run)); fileThread.Start(); }
public void Add(FileServer item) { this.List.Add(item); }
private void CBAC_Smb2_AccessFile(string RealmName, User user, Computer kdc, TransportType transportType, FileServer fileserver, string filePath, string fileName, bool expectAccessDeny) { base.Logging(); client = new KerberosTestClient(RealmName, user.Username, user.Password, KerberosAccountType.User, kdc.IPAddress, kdc.Port, transportType, testConfig.SupportedOid); KdcOptions options = KdcOptions.FORWARDABLE | KdcOptions.CANONICALIZE | KdcOptions.RENEWABLE; client.SendAsRequest(options, null); METHOD_DATA methodData; KerberosKrbError krbError = client.ExpectPreauthRequiredError(out methodData); BaseTestSite.Log.Add(LogEntryKind.Comment, "Create and send AS request with PaEncTimeStamp, PaPacRequest and paPacOptions."); string timeStamp = KerberosUtility.CurrentKerberosTime.Value; PaEncTimeStamp paEncTimeStamp = new PaEncTimeStamp(timeStamp, 0, client.Context.SelectedEType, client.Context.CName.Password, this.client.Context.CName.Salt); PaPacRequest paPacRequest = new PaPacRequest(true); PaPacOptions paPacOptions = new PaPacOptions(PacOptions.Claims | PacOptions.ForwardToFullDc); Asn1SequenceOf <PA_DATA> seqOfPaData = new Asn1SequenceOf <PA_DATA>(new PA_DATA[] { paEncTimeStamp.Data, paPacRequest.Data, paPacOptions.Data }); client.SendAsRequest(options, seqOfPaData); KerberosAsResponse asResponse = client.ExpectAsResponse(); //Verify encrypted padata PaSupportedEncTypes paSupportedEncTypes = null; BaseTestSite.Assert.IsNotNull(asResponse.EncPart, "The encrypted part of AS-REP is decrypted."); BaseTestSite.Assert.IsNotNull(asResponse.EncPart.pa_datas, "The encrypted padata is not null."); if (this.testConfig.IsKileImplemented) { foreach (var padata in asResponse.EncPart.pa_datas.Elements) { var parsedPadata = PaDataParser.ParseRepPaData(padata); if (parsedPadata is PaSupportedEncTypes) { paSupportedEncTypes = parsedPadata as PaSupportedEncTypes; } } BaseTestSite.Assert.IsNotNull(paSupportedEncTypes, "The encrypted padata of AS-REP contains PA_SUPPORTED_ENCTYPES."); if (this.testConfig.IsClaimSupported) { BaseTestSite.Assert.IsTrue( paSupportedEncTypes.SupportedEncTypes.HasFlag(SupportedEncryptionTypes.Claims_Supported), "Claims is supported."); } } //TGS exchange BaseTestSite.Log.Add(LogEntryKind.Comment, "Create and send FAST armored TGS request: {0}.", fileserver.Smb2ServiceName); Asn1SequenceOf <PA_DATA> seqOfPaData2 = new Asn1SequenceOf <PA_DATA>(new PA_DATA[] { paPacRequest.Data, paPacOptions.Data }); client.SendTgsRequest(fileserver.Smb2ServiceName, options, seqOfPaData2); KerberosTgsResponse tgsResponse = client.ExpectTgsResponse(); EncryptionKey key = testConfig.QueryKey(fileserver.Smb2ServiceName, client.Context.Realm.ToString(), client.Context.SelectedEType); tgsResponse.DecryptTicket(key); BaseTestSite.Assert.IsNotNull(tgsResponse.EncPart, "The encrypted part of TGS-REP is decrypted."); //Verify TGS encryped padata paSupportedEncTypes = null; BaseTestSite.Assert.IsNotNull(tgsResponse.EncPart, "The encrypted part of TGS-REP is decrypted."); BaseTestSite.Assert.IsNotNull(tgsResponse.EncPart.pa_datas, "The encrypted padata of TGS-REP is not null."); if (this.testConfig.IsKileImplemented) { foreach (var padata in tgsResponse.EncPart.pa_datas.Elements) { var parsedPadata = PaDataParser.ParseRepPaData(padata); if (parsedPadata is PaSupportedEncTypes) { paSupportedEncTypes = parsedPadata as PaSupportedEncTypes; } } BaseTestSite.Assert.IsNotNull(paSupportedEncTypes, "The encrypted padata of TGS-REP contains PA_SUPPORTED_ENCTYPES."); } if (this.testConfig.IsKileImplemented) { BaseTestSite.Assert.IsNotNull(tgsResponse.TicketEncPart.authorization_data, "The ticket contains Authorization data."); AdWin2KPac adWin2kPac = FindOneInAuthData <AdWin2KPac>(tgsResponse.TicketEncPart.authorization_data.Elements); BaseTestSite.Assert.IsNotNull(adWin2kPac, "The Authorization data contains AdWin2KPac."); } AuthorizationData data = null; EncryptionKey subkey = KerberosUtility.GenerateKey(client.Context.SessionKey); byte[] token = client.CreateGssApiToken(ApOptions.MutualRequired, data, subkey, ChecksumFlags.GSS_C_MUTUAL_FLAG | ChecksumFlags.GSS_C_INTEG_FLAG); BaseTestSite.Log.Add(LogEntryKind.Comment, "Logon to fileserver and Access File."); AccessFile(filePath, fileName, fileserver, token, tgsResponse.EncPart.key, expectAccessDeny); }
private void CrossRealm_Smb2_AccessFile(string localRealmName, string trustuedRealmName, User localUser, Computer localKDC, Computer trustedKDC, TransportType transportType, FileServer fileserverInTrustedRealm, string filePath, string fileName, bool expectAccessDeny) { base.Logging(); client = new KerberosTestClient(localRealmName, localUser.Username, localUser.Password, KerberosAccountType.User, localKDC.IPAddress, localKDC.Port, transportType, testConfig.SupportedOid); //Create and send AS request KdcOptions options = KdcOptions.FORWARDABLE | KdcOptions.CANONICALIZE | KdcOptions.RENEWABLE; client.SendAsRequest(options, null); //Recieve preauthentication required error METHOD_DATA methodData; KerberosKrbError krbError = client.ExpectPreauthRequiredError(out methodData); //Create sequence of PA data string timeStamp = KerberosUtility.CurrentKerberosTime.Value; PaEncTimeStamp paEncTimeStamp = new PaEncTimeStamp(timeStamp, 0, this.client.Context.SelectedEType, this.client.Context.CName.Password, this.client.Context.CName.Salt); PaPacRequest paPacRequest = new PaPacRequest(true); Asn1SequenceOf <PA_DATA> seqOfPaData = new Asn1SequenceOf <PA_DATA>(new PA_DATA[] { paEncTimeStamp.Data, paPacRequest.Data }); //Create and send AS request client.SendAsRequest(options, seqOfPaData); KerberosAsResponse asResponse = client.ExpectAsResponse(); //Create and send TGS request if (this.testConfig.TrustType == Adapter.TrustType.Forest) { client.SendTgsRequest(fileserverInTrustedRealm.Smb2ServiceName, options); } else if (this.testConfig.TrustType == Adapter.TrustType.Realm) { client.SendTgsRequest(trustedKDC.DefaultServiceName, options); } BaseTestSite.Log.Add(LogEntryKind.Comment, "Create and send TGS request"); KerberosTgsResponse tgsResponse = client.ExpectTgsResponse(); BaseTestSite.Log.Add(LogEntryKind.Comment, "Receive a referral TGS response."); BaseTestSite.Assert.AreEqual(trustedKDC.DefaultServiceName, KerberosUtility.PrincipalName2String(tgsResponse.Response.ticket.sname), "The service principal name in referral ticket should match expected."); BaseTestSite.Assert.AreEqual(localRealmName.ToLower(), tgsResponse.Response.ticket.realm.Value.ToLower(), "The realm name in referral ticket should match expected."); //Change realm client.ChangeRealm(trustuedRealmName, trustedKDC.IPAddress, trustedKDC.Port, this.testConfig.TransportType); //Create and send referral TGS request client.SendTgsRequest(fileserverInTrustedRealm.Smb2ServiceName, options); KerberosTgsResponse refTgsResponse = client.ExpectTgsResponse(); BaseTestSite.Assert.AreEqual(fileserverInTrustedRealm.Smb2ServiceName, KerberosUtility.PrincipalName2String(refTgsResponse.Response.ticket.sname), "The service principal name in service ticket should match expected."); BaseTestSite.Assert.AreEqual(trustuedRealmName.ToLower(), refTgsResponse.Response.ticket.realm.Value.ToLower(), "The realm name in service ticket should match expected."); EncryptionKey key = testConfig.QueryKey(fileserverInTrustedRealm.Smb2ServiceName, client.Context.Realm.ToString(), client.Context.SelectedEType); refTgsResponse.DecryptTicket(key); BaseTestSite.Assert.AreEqual(localRealmName.ToLower(), refTgsResponse.TicketEncPart.crealm.Value.ToLower(), "Realm name in service ticket encrypted part should match expected."); BaseTestSite.Assert.AreEqual(localUser.Username.ToLower(), KerberosUtility.PrincipalName2String(refTgsResponse.TicketEncPart.cname).ToLower(), "User name in service ticket encrypted part should match expected."); AuthorizationData data = null; EncryptionKey subkey = KerberosUtility.GenerateKey(client.Context.SessionKey); byte[] token = client.CreateGssApiToken(ApOptions.MutualRequired, data, subkey, ChecksumFlags.GSS_C_MUTUAL_FLAG | ChecksumFlags.GSS_C_INTEG_FLAG); BaseTestSite.Log.Add(LogEntryKind.Comment, "Logon to fileserver and Access File."); AccessFile(filePath, fileName, fileserverInTrustedRealm, token, refTgsResponse.EncPart.key, expectAccessDeny); }
private void StartFileServer() { if (!Description.Active) { InternalState = State.Stopped; return; } var start = DateTime.Now; try { InternalState = State.Loading; var ids = new Identifiers(ComparerRepository.Lookup(Description.Order), Description.OrderDescending); foreach (var v in Description.Views) { ids.AddView(v); } var dirs = (from i in Description.Directories let d = new DirectoryInfo(i) where d.Exists select d).ToArray(); if (dirs.Length == 0) { throw new InvalidOperationException("No remaining directories"); } fileServer = new FileServer(Description.Types, ids, dirs) { FriendlyName = Description.Name }; #if !DEBUG || TESTCACHE if (cacheFile != null) { fileServer.SetCacheFile(cacheFile); } #endif fileServer.Changing += (o, e) => { InternalState = State.Refreshing; }; fileServer.Changed += (o, e) => { InternalState = Description.Active ? State.Running : State.Stopped; }; fileServer.Load(); var authorizer = new HttpAuthorizer(); if (Description.Ips.Length != 0) { authorizer.AddMethod(new IPAddressAuthorizer(Description.Ips)); } if (Description.Macs.Length != 0) { authorizer.AddMethod(new MacAuthorizer(Description.Macs)); } if (Description.UserAgents.Length != 0) { authorizer.AddMethod(new UserAgentAuthorizer(Description.UserAgents)); } fileServer.Authorizer = authorizer; server.RegisterMediaServer(fileServer); InternalState = State.Running; var elapsed = DateTime.Now - start; LogManager.GetLogger("State").Logger.Log( GetType(), Level.Notice, $"{fileServer.FriendlyName} loaded in {elapsed.TotalSeconds:F2} seconds", null ); } catch (Exception ex) { server.ErrorFormat("Failed to start {0}, {1}", Description.Name, ex); Description.ToggleActive(); InternalState = State.Stopped; } }