Beispiel #1
0
        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);
        }
Beispiel #2
0
		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;
		}
Beispiel #3
0
        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);
        }
Beispiel #10
0
        /// <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);
            }));
        }
Beispiel #15
0
        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();
            }
        }
Beispiel #16
0
 /// <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);
        }
Beispiel #20
0
        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;
            }
        }