custom config file demo in ASP.NET下载

weixin_39821526 2020-02-21 05:00:17
if you wan to use your custome config settings
you can inherit the IConfigurationSectionHandler if your .net version is 1.x
you can inherit the ConfigurationSection if your .net version is 2.0

if you want to store you config settings in another file,YOU CAN DOWNLOAD THIS DEMO PROJECT
相关下载链接://download.csdn.net/download/xiahouwen/1154349?utm_source=bbsseo
...全文
20 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
ext-2.3.0+CKEditor 3.0.1+ckfinder_asp_1.4配置详解 一、去http://cksource.com/下载这两个东西 二、去http://www.extjs.com/下载ext-2.3.0 三、将ext-2.3.0、CKEditor 3.0.1、ckfinder_asp_1.4,取出解压后的文件夹,真接放到站点根目录,目录结构为: WEBROOT |--ckeditor |--finder |--ext-2.3.0 |--js |--css 修改ckeditor目录下的config.js如下: CKEDITOR.editorConfig = function( config ) { config.language = 'zh-cn'; //配置语言 config.uiColor = 'DFE8F6'; config.skin = 'office2003'; config.height = 320; config.width = '100%'; config.font_names = '宋体/宋体;黑体/黑体;仿宋/仿宋_GB2312;楷体/楷体_GB2312;隶书/隶书;幼圆/幼圆;'+ config.font_names ; config.filebrowserUploadUrl = 'ckfinder/core/connector/asp/connector.asp?command=QuickUpload&type=Files'; config.filebrowserImageUploadUrl = 'ckfinder/core/connector/asp/connector.asp?command=QuickUpload&type=Images'; config.filebrowserFlashUploadUrl = 'ckfinder/core/connector/asp/connector.asp?command=QuickUpload&type=Flash'; config.filebrowserWindowWidth = '1000'; config.filebrowserWindowHeight = '700' }; 在js目录中加入ExtCkeditor.js: /**************************************************** * CKEditor Extension *****************************************************/ Ext.form.CKEditor = function(config){ this.config = config; Ext.form.CKEditor.superclass.constructor.call(this, config); }; Ext.extend(Ext.form.CKEditor, Ext.form.TextArea, { onRender : function(ct, position){ if(!this.el){ this.defaultAutoCreate = { tag: "textarea", autocomplete: "off" }; } Ext.form.TextArea.superclass.onRender.call(this, ct, position); CKEDITOR.replace(this.id, this.config.CKConfig); }, setValue : function(value){ Ext.form.TextArea.superclass.setValue.apply(this,[value]); CKEDITOR.instances[this.id].setData( value ); }, getValue : function(){ CKEDITOR.instances[this.id].updateElement(); return Ext.form.TextArea.superclass.getValue(this); }, getRawValue : function(){ CKEDITOR.instances[this.id].updateElement();

CuteEditor功能特点
是什么使CuteEditor成为Html在线编辑器的领航者?除了其强大的功能和方便的使用, 这里还有一些顶尖的技术因素是CuteEditor编辑器成为你编辑和发布Web内容的最佳选择:
界面简洁加载速度快

由于才有了很多优化方法,所以CuteEditor非常简单、小巧、装载速度快,但仍然保持功能强大、执行效率高的特点。

跨浏览器,跨平台的所见即所得在线html编辑器

兼容市面上最流行的ie5.5+,firefox1.0+,mozilla1.3+, netscape7+和Safari(1.3+)浏览器,并且包括Mac和Linux操作平台。

CuteEditor遵循Web标准,没有类似 这种标签

你的Html编辑器还在使用类似 这种标签么? CuteEditor会帮助你构建用户最新Web标准的html代码标签,自动生成简洁的HTML/XHTML代码。 为什么要遵循Web标准?

学习应用Web标准有很多益处,下面给几个简单例子:

获得好的搜索引擎排名: The separation of content and presentation makes the content represent a larger part of the total file size. Combined with semantic markup this will improve search engine rankings.
更快的下载和加载网页: Less HTML results in smaller file sizes and quicker downloads. Modern web browsers render pages faster when they are in their standards mode than when they are in their backwards compatible mode.
适应未来网页浏览器: When you use defined standards and valid code you future-proof your documents by reducing the risk of future web browsers not being able to understand the code you have used.
代码编写简单,维护方便: Using more semantic and structured HTML makes it easier and quicker to understand code created by somebody else.
适应其他设备: Semantic HTML, where structure is separated from presentation, makes it easier for screen readers and alternative browsing devices to interpret the content.
非常好的适应性: A semantically marked up document can be easily adapted to print and alternative browsing devices, like handheld computers and cellular phones, just by linking to a different CSS file. You can also make site-wide changes to presentation by editing a single file.
Read more:
我的网页符合Web标准,你的呢?
能自动清理HTML代码中Word标记

When text is pasted from Microsoft Word allot of unnecessary word specific markup is carried across. This can result in web pages that take an unnecessarily long time to download. The Paste from Word button solves this by removing word markup before pasting the text into your page.

支持W3C WAI和section 508的无障碍引导

Cute Editor optional accessibility settings ensure your site complies with Section 508, so people with disabilities can have full access to your content.

输出的HTML或不错的XHTML供你选择 (Demo)

Cute Editor supports output well-formed XHTML. Your choice of XHTML 1.0 or HTML 4.01 output.


无限次的撤销/恢复

Many of the other editors on the market cannot undo or redo certain actions, and certain table operations - such as cell merge or column deletion. Cute Editor 4.0 has a new custom undo/redo implementation to make you can now safely undo those actions.


多语言支持,通过简单设置XML即可完成 (Demo)

All labels, buttons, tooltips and messages are located in external XML files, so that the language of the editor can be switched with a single property. You can also create a new language in a matter of minutes.

完全支持页面编辑(从 到 ) (Demo)

Cute Editor 4.0 allows you to edit a full HTML page, including , <!DOCTYPE...> and some other options. You can also insert Form elements (checkbox, button, textarea, etc.) and modify certain properties of the element.<br/> <br/> 默认换行为软回车 (<em>Demo</em>)<br/><br/>Most other editors insert double line returns which can be annoying for clients who are used to editing in Microsoft Word. CuteEditor can be <em>config</em>ured to use <div>, <br> or <p> tags when you press enter. In either mode <br> tags can be created by using shift+enter.<br/> <br/> 支持代码缩进和小写字母<br/><br/>Cute Editor displays nicely indented code in the HTML mode and the generating HTML tags and Attributes are in lower case. This is very convenient and important for the advanced users. <br/> <br/> 支持全屏编辑 (<em>Demo</em>)<br/><br/>It does not open a new window, instead it will resize to fit the browser screen. Edit in full screen mode, maximizing your available space. <br/><br/> <br/> 没有打开较慢的Java或ActiveX组件<br/><br/>100% DHTML, JavaScript <em>ASP.Net</em> code. There are no slow Java or ActiveX components to worry about and everything is handled in the browser! <br/><br/> <br/> 支持相对地址和URL自动关联(<em>Demo</em>)<br/><br/>With Cute Editor, you have the choice of using either a relative or absolute URL. <br/> <br/> 部署简单<br/><br/>The perfect addition to your content management system! Only a couple lines of code , you don't need to be an expert. Allows you to add an online HTML editing functionality that works with standard HTML form.<br/> <br/> 可以简单的通过API隐藏按钮和标签 <br/><br/>Cute Editor allows developers to set the image directory, set the controls width, disable image uploading and deleting, restrict access to the source/preview tabs, hide buttons and lists that you don't want your clients to see or access. <br/> <br/> 支持图片的文字环绕 <br/><br/>Locate the image you want to wrap text around, and click any justify button in the toolbar. The image will float to the desired direction. Text will be positioned around the image. <br/> <br/> 支持文件<em>下载</em> <br/><br/>You can upload document <em>file</em>s, create a link from your HTML content to the document <em>file</em>s (zip <em>file</em>s, ppt <em>file</em>s...). <br/> <br/> CSS型皮肤 (<em>Demo</em>)<br/><br/>Cute Editor provides several built in themes that are ready to use. Developers can completely change the appearance of the toolbar and the dialogs by simply modifying the supplied classes and images. <br/> <br/> 高级的表格管理<br/><br/>Create and modify tables and table cells. Set their border color, alignment, cellspacing and more! Once you've created a table, simply right click inside of it and use the handy popup menu to change its attributes. <caption>,<summary>,<thead>,<tfoot>,<th> tags are supported. <br/><br/> <br/> 图片插入和自动上传<br/><br/>Built-in thumbnail generator. Thumbnail images are dynamically created; Supports upload new images. Paging - specify how many images. Support auto resize images.<br/> <br/> 具有特殊的对话框<br/><br/>With Style builder dialog box you can apply CSS style attributes directly to any HTML elements on your Web page.<br/> <br/> 支持内容模板 (<em>Demo</em>)<br/><br/>The basic idea behind a Content Management System (CMS) is to separate the management of content from design. Cute Editor allows the site designer to easily create and establish templates to give the site a uniform look. Templates may be modified when desired. <br/> <br/> 通过限制html和文字的长度来保护你的数据库 (<em>Demo</em>)<br/><br/>If you tried to insert a record whose text length is greater than allowed by your table, an error will be reported. To prevent this type of error from occurring, developers can use MaxHTMLLength or MaxTextLength in the Cute Editor to limit the length of the user抯 input. <br/> <br/> Apply security to control user access to resources <br/><br/>Cute Editor allows developers to assign a pre-defined set of permissions by group or individual. This prevents a normal user to access the administration functionality. <br/><br/>The details of permissions are specified by an XML security policy <em>file</em>. Each level maps to a specific <em>file</em>. The default mappings: <br/><br/>admin设置 admin.<em>config</em> <br/>default设置 default.<em>config</em> <br/>guest设置 guest.<em>config</em> <br/>You can <em>custom</em>ize and extend each policy <em>file</em> by editing the XML security policy <em>file</em>. You can also create your own policy <em>file</em>s that define arbitrary permission sets.<br/><br/>Comparison of the sample security policy <em>file</em> <br/><br/> <br/>Permissions/Resource Setting Admin Default Guest <br/>AllowUpload <br/>AllowDelete <br/>AllowCopy <br/>AllowMove <br/>AllowCreateFolder <br/>AllowDeleteFolder <br/>RestrictUploadedImageDimension <br/>AutoResizeUploadedImages <br/>MaxImageWidth 6400 640 640 <br/>MaxImageHeight 4800 480 480 <br/>MaxImageSize 10000 100 100 <br/>MaxMediaSize 10000 100 100 <br/>MaxFlashSize 10000 100 100 <br/>MaxDocumentSize 10000 100 100 <br/>ImageGalleryPath ~/uploads ~/uploads/member ~/uploads/guest <br/>MediaGalleryPath ~/uploads ~/uploads/member ~/uploads/guest <br/>FlashGalleryPath ~/uploads ~/uploads/member ~/uploads/guest <br/><em>File</em>sGallaryPath ~/uploads ~/uploads/member ~/uploads/guest <br/>ImageFilters .jpg <br/>.jpeg <br/>.gif <br/>.png .jpg <br/>.jpeg <br/>.gif <br/> .jpg <br/>.jpeg <br/>.gif <br/> <br/>MediaFilters .avi <br/>.mpg <br/>.mpeg <br/>.mp3 .avi <br/>.mpg <br/>.mpeg <br/> .avi <br/>.mpg <br/>.mpeg <br/> <br/>DocumentFilters .txt, .doc<br/>.pdf, .zip<br/>.rar, .avi<br/>.mpg, .mpeg<br/>.mp3, .jpg<br/>.jpeg,.gif<br/>.png .pdf, .doc<br/> .txt, .doc<br/>.pdf, .zip<br/> <br/> <br/> 在线图片编辑<br/><br/>People that input content on a website are generally not web designers, so most don't have that design & technical fibre in them. With online image editor, you can now edit image <em>file</em> with no image editing software to download or install! Easy drag and drop familiar interface. Resize, change dimensions, scale, crop, add text, optimize, rotate, flip, mirror and add watermark. <br/> <br/> 控制上传文件夹大小<br/><br/>Max Upload Folder size(Including all subfolders and <em>file</em>s. A must have feature for people who have limited hosting space.) Dynamic display of available free space in the Upload Folder.Limits the size of your upload folder. If the max is reached uploads will be disabled. <br/> <br/> 支持图片热点<br/><br/>Image maps are pictures with clickable regions also known as "hotspots." When users click on one of the hotspots, they're directed to the page you designate. CuteEditor 5.0 lets you easily create image maps to add fun and excitement to a page<br/> <br/> <div> 的盒模式<br/><br/><div> boxes offer a much greater ability to control the layout of a page. With CuteEditor, you can put any content between <div> tags and then use CSS to style all sorts of borders, backgrounds, etc. <br/> <br/> 通用虚拟键盘<br/><br/>Virtual Keyboard does not require changes to language settings of your system and even speeds up the entire text input process for your <em>custom</em>ers. It lets your native speaking clients to access your web resources from any location in the world without changing national keyboard layouts and fonts on their machines. <br/> <br/> 把图片存到数据库<br/><br/>With CuteEditor you can easily use a Sql Server database or access database as the <em>file</em> storage. <br/> <br/> RTF和HTML之间互相转换<br/><br/>With CuteEditor you can easily convert an HTML document into an RTF <em>file</em> and RTF <em>file</em> into HTML or XHTML document. <br/> <br/> 生成PDF文件<br/><br/>CuteEditor also allows you dynamically create Adobe PDF documents from <em>ASP.NET</em>.<br/> cuteEditor6.0多语言版(集成lic文件) <br/><br/>目前功能强大,最好的<em>Asp.net</em>编辑器之一 <br/>除了一般html编辑器具有的功能外,还有word过滤、图片在线处理、加水印等实用功能 <br/>使用关键步骤: <br/><br/>1、引用bin下的cuteEditor文件 <br/>2、在aspx页面顶部中添加引用 <br/>3、在aspx页面中加入代码 <br/>4、最后可以在.cs文件中通过来读取Editor1.Text的值来进行任意的扩展和控制了 <br/>具体配置可参照default.aspx和default.aspx.cs <br/><br/>关于cuteEditor6.0的特征及体验请浏览cuteEditor.cn,系统集成了lic授权文件,仅供体验测试使用,请不要用于任何商业用途! <br/><br/> <br/></a></div><div data-report-view="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lingwanqiu/9508945","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAltJREFUWEdjZGBgYGhv/yD45//nEEYGBrX//xj4QWK0AoxMDB//MzDcYmHkXVNZKfCeEWz5v8/1DP8ZuGhlKVZzGRm+sTDxNjI2tz1OZfjHYEpXy2GWMTGcZmxpe9xN62DH5TlQdDA2tzyeNSC+h1o66gCyQyApUdRNSIhNGBSS7979ejtv/utd5EQl2Q7IypT0ExJiFoc44O/LadOfbxp1wPAOAWlpdr5Pn//8/Pzp70+QT3GlAX5+ZnYeHhb2p09/fiImRIhOhBYWvIo21ryWu/Z8PHDp4tdn2BxgoM8l4+IiYH/k6OdjJ058vk91B7g487swMDD8v3Hj+2VJSTYpfn5mEZAlHz/9ffPq5e+Xqqoc2iD+nr0f99DSAQQ9RhMHcHAwsYSGCtvKy7Gr4HPBo0c/b69c/fbwzx///hJ0KQMDA9FpAGaYizO/tpkZjwUTEyMTsgX//v3/d/LUl+N79368RozFMDUkOwCkUUODU8zHW9CFg4OJG8T/8ePf181b3u25efPHK1IsB6nF6gAjY25ZEWFWcNPs169/fw4c+HQD3WBBIRaOsBAhZ5D4qjXv9r5/9+cHuhoHBz4NNjYmFpD4m7e/P547+/UxuhqsDoiPE3WWlWVXgvju/5ee3qfLsfmMiZmBEST+7y/Df2zyJcXSkRwcjDwgucePf95buOj1Xqo6gFBwDw8H/P/P8O/nz//fCPkWmzw7OyMXIyMDOLeQHQXkWIxNz9BygJubgI6kBCu4tUMt8PzF75e7dn24QlQuoJalxJgzCDomA901G/DOKSieBrJ7DgCPdYFAskV/NwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://download.csdn.net/download/lingwanqiu/9508945" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lingwanqiu/9508945","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="title" data-v-ca2d15ac>ICS delphixe10源码版</a></div> <a target="_blank" href="https://download.csdn.net/download/lingwanqiu/9508945" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lingwanqiu/9508945","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="desc" data-v-ca2d15ac>ICS - Internet Component Suite - V8 - Delphi 7 to RAD Studio 10 Seattle ======================================================================= (Aka FPIETTE's Components) Revised: March 3, 2016 http://www.overbyte.be/ http://wiki.overbyte.be/ Table of content: ----------------- - Legal issues - Donate - Register - Contributions - Latest Versions - Version Control repository - Installation - Available VCL Components - Sample applications - About SSL - Support - Release notes - Midware - Known problems - Special thanks Legal issues: ------------- Copyright (C) 1997-2016 by Fran鏾is PIETTE Rue de Grady 24, 4053 Embourg, Belgium SSL implementation includes code written by Arno Garrels, Berlin, Germany, contact: ICS is freeware. This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented, you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. 4. You must register this software by sending a picture postcard to the author. Use a nice stamp and mention your name, street address, EMail address and any comment you like to say. 5. As this code make use of OpenSSL, your rights are restricted by OpenSSL license as soon as you use any SSL feature. See http://www.openssl.org for details. Donate ------ ICS is freeware. You can use it without paying anything except the registration postcard (see "register" below). But of course donations are welcome. You can send cash (Euro currency or US Dollars) in an envelop to my street address or buy a gift certificate at Amazon in the UK. I will then use it to buy books. Here is the direct URL at Amazon UK (nearest to my home, please don't use another): http://www.amazon.co.uk/exec/obidos/gc-email-order1/ref=g_gc_email/202-6198323-6681414 For more generous amount, contact me by email. Register -------- ICS is freeware. If you use the components, you must register by sending a picture postcard showing the area you live in and some beautiful stamps for my kids who are stamp collectors. Do not use an envelop, I collect USED postcards sent to me. Write on the postcard that it is your ICS registration. Address your card to: Francois PIETTE, rue de Grady 24, 4053 Embourg, Belgium. Don't forget to mention your name, street address, EMail and web site. Contributions: -------------- ICS has been designed by Fran鏾is PIETTE but many other peoples are working on the components and sample programs. The history of changes in each source <em>file</em> list all developers having contributed (When no name is given, the change is by F. Piette). I can't list all contributors here but I want to specially thanks two specially active contributors: - Arno Garrels - Angus Robertson Latest versions: --------------- The latest versions of ICS can be downloaded from the ICS Wiki web site: http://wiki.overbyte.be/wiki/index.php/ICS_Download ICS V5 and V6 are archive releases no longer updated, last supported release was 2007. ICS V7 is a stable release that may still be updated for major bugs, but not for new releases of Delphi, latest it supported was XE3. ICS V8 is the current development release which is held in a public Version Control repository that is zipped each night for easy download. The download page above also includes the OpenSSL binaries needed to support SSL. ICS V8 supports Delphi 64-bit and Mac OS-X projects. Note that latest C++ Builder version supported is XE3 (lack of spare time, sorry). ICS V9 is in early development and is planned to support Android. There are no current plans for ICS for iOS. Version Control repository: --------------------------- svn://svn.overbyte.be/ics or http://svn.overbyte.be:8443/svn/ics (Usercode = ics, password = ics) Installation: ------------- ICS V8 has been designed for Embarcadero Delphi 2009 and up, and C++ Builder 2009 and up, but is fully compatible with Borland Delphi 7 and CodeGear 2006 and 2007. Embarcadero RAD Studio includes Delphi and C++ Builder. http://www.embarcadero.com/ With Delphi XE2 and later, VCL 64-bit Windows targets are supported for Delphi only. Currently FireMonkey is partly supported for Delphi only (there are still a few non-ported components). ICS for Mac OSX is currently experimental. The zip <em>file</em> has sub-directories in it. You must use the WinZip "Use folder names" option to restore this directory tree or you will have problems because the <em>file</em>s would not be in their proper subdirectories. Please note most of these directories are differently named to ICS V7 and earlier, to ease support of multiple versions of Delphi and platforms, and to ease location of similar sample projects. Please don't install V8 over an existing V7 installation, it will be a mess of old and new. This is the new V8 sub-directory layout: .\ Info directory .\Install Component packages project groups for all versions .\Packages (was Delphi\Vc32) Delphi (7 and up) and C++Builder (2006 and up) packages projects .\Source (was Delphi\Vc32) ICS Delphi source code built into packages .\Source\Include (was Delphi\Vc32) .inc <em>file</em>s (including OverbyteIcsDefs.inc) .\Source\Extras (was Delphi\Vc32) Extra source code not built into packages .\Source\zobj125 (was Delphi\Vc32) ZLIB C OBJ include <em>file</em>s .\Lib Unit output directories for all package builds, subdirectories | for 2007+ will be created on building the packages \$(<em>Config</em>) Release / Debug | \$(Platform) Win32 / Win64 / OSX32 | \ D7..XE8, 10 Seattle includes .dcu and .dfm <em>file</em>s for Delphi and .obj and .hpp <em>file</em>s for C++ Builder .\Samples Delphi Win32/Win64 common source for all <em>demo</em>s .\Samples\delphi\Broswer<em>Demo</em> Delphi Win32/Win64 Web Browser sample application (all Delphi versions) .\Samples\delphi\Broswer<em>Demo</em>\Resources Resource <em>file</em>, web pages and movie linked into browser <em>demo</em> .\Samples\delphi\Ftp<em>Demo</em>s Delphi Win32/Win64 FTP sample applications (all Delphi versions) .\Samples\delphi\MailNews<em>Demo</em>s Delphi Win32/Win64 SMTP, POP3, NNTP sample applications (all Delphi versions) .\Samples\delphi\Misc<em>Demo</em>s Delphi Win32/Win64 Miscellaneous applications (all Delphi versions) .\Samples\delphi\Other<em>Demo</em>s Delphi Win32/Win64 DNS, Ping, SNMP, Syslog sample applications (all Delphi versions) .\Samples\delphi\Platform<em>Demo</em>s Delphi FireMonkey and cross-platform samples (Delphi XE2+) .\Samples\delphi\Socket<em>Demo</em>s Delphi Win32/Win64 Socket sample applications (all Delphi versions) .\Samples\delphi\sslinternet Delphi Win32/Win64 SSL-enabled sample applications (all Delphi versions) .\Samples\delphi\Web<em>Demo</em>s Delphi Win32/Win64 HTTP sample applications (all Delphi versions) .\Samples\delphi\Web<em>Demo</em>s\WebAppServerData Directory for WebAppServ <em>demo</em> data <em>file</em>s .\Samples\delphi\Web<em>Demo</em>s\WebServData Directory for WebServ <em>demo</em> data <em>file</em>s .\Samples\cpp\internet C++Builder sample applications .\Samples\cpp\internet\cb2006 C++Builder 2006 projects .\Samples\cpp\internet\cb2007 C++Builder 2007 projects .\Samples\cpp\internet\cb2009 C++Builder 2009 projects .\Samples\cpp\internet\cb2010 C++Builder 2010 projects .\Samples\cpp\internet\cbXE C++Builder XE projects .\Samples\cpp\internet\cbXE2 C++Builder XE2 projects UPGRADING and REINSTALLING Uninstall an existing ICS package (Menu | Component | Install Packages, select the component package and click Remove). Rename the old ICS directory and unzip to a new or empty directory, remove the old path from the library path and add either the new .\Source directory to the library path under Tools | Options |... or the appropriate .\Lib subdirectory according to version, ie .\Lib\Debug\Win32\D2007 for Delphi 2007. The latter has the advantage that the ICS source code won't be recompiled whenever your project is build. Also under Tools | Options |... add the new .\Source directory to the Browsing path. All DELPHI and C++ BUILDER VERSIONS/WIN32 Always upgrade your compiler with the latest update available from Embarcadero. Always update your system with http://windowsupdate.microsoft.com SSL or not SSL? By default the SSL code is compiled into the run-time package and additional SSL- enabled components are installed. In order to not compile the SSL code into the run-time package and to not install the SSL-Enabled components you need to remove the conditional define USE_SSL from both the run-time and design-time package. However if you do not build your applications with run-time packages it is recommended to build the packages with default settings. The SSL code will the be compiled into your applications depending on whether the conditional define USE_SSL is set in the project options or not (this requires having the .\Source directory in either in the library path or in projects Search path). Actual use of SSL in your applications also requires the OpenSSL <em>file</em>s LIBEAY32.DLL and SSLEAY32.DLL being available somewhere in the path. Note different DLLs are needed for Win32 and Win64 applications. The ICS distribution includes the latest Win32 OpenSSL <em>file</em>s in the .\OpenSSL-Win32 directory and the two main DLLs duplicated in .\Samples\delphi\sslinternet. Other OpenSSL <em>file</em>s, including older and Win64, may be downloaded from: http://wiki.overbyte.be/wiki/index.php/ICS_Download INSTALLATION USING THE INSTALL PROJECT GROUPS For each Delphi and C++ Builder version one project group is provided in directory .\Install: Delphi 7 : D7Install.bpg Delphi 2006 : D2006Install.bdsgroup Delphi 2007 : D2007Install.groupproj Delphi 2009 : D2009Install.groupproj Delphi 2010 : D2010Install.groupproj Delphi XE : DXeInstall.groupproj Delphi XE2 : DXe2Install.groupproj // VCL only, no FireMonkey components Delphi XE2 : DXe2InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE3 : DXe3Install.groupproj // VCL only, no FireMonkey components Delphi XE3 : DXe3InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE4 : DXe4Install.groupproj // VCL only, no FireMonkey components Delphi XE4 : DXe4InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE5 : DXe5Install.groupproj // VCL only, no FireMonkey components Delphi XE5 : DXe5InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE6 : DXe6Install.groupproj // VCL only, no FireMonkey components Delphi XE6 : DXe6InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE7 : DXe7Install.groupproj // VCL only, no FireMonkey components Delphi XE7 : DXe7InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE8 : DXe8Install.groupproj // VCL only, no FireMonkey components Delphi XE8 : DXe8InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi 10 Seattle : D10SInstall.groupproj // VCL only, no FireMonkey components Delphi 10 Seattle : D10SInstallVclFmx.groupproj // Both VCL and FireMonkey components C++ Builder 2006 : CB2006Install.bdsgroup C++ Builder 2007 : CB2007Install.groupproj C++ Builder 2009 : CB2009Install.groupproj C++ Builder 2010 : CB2010Install.groupproj C++ Builder XE : CBXeInstall.groupproj C++ Builder XE2 : CBXe2Install.groupproj // VCL only no FireMonkey components C++ Builder XE2 : CBXe2InstallVclFmx.groupproj // Both VCL and FireMonkey components C++ Builder XE3 : CBXe3InstallVclFmx.groupproj // Both VCL and FireMonkey components 1 - Do a <em>File</em>/Open Project, navigate to the Install directory, select the correct <em>file</em> and open it. The project manager view should now display two package projects, one run-time and one design-time package. The run-time package name contains the "Run" suffix. The design-time package name contains the "Design" suffix. 2 - Select and Build the run-time package (do not install). 3 - Select and Install the design-time package. After a few seconds, you should have a dialog box telling you the package has been installed with a bunch of new components registered in the Tool Palette under "Overbyte ICS" and "Overbyte ICS SSL". Then do a "Save All" and a "Close All". 4 - One package is installed, called 'Overbyte ICS Design-Time Package for Delphi xxx'. 5 - Various directories under .\Samples\delphi\ include samples that illustrate use of all the ICS components, see later. FIREMONKEY CROSS PLATFORM PACKAGES: 1 - For XE2 and later, DXe?Install (where ? is the version) installs VCL components only, while DXe?InstallVclFmx also installs FireMonkey cross platform components (three run time packages). In order to use this feature first uninstall the old design-time package. 2 = Build all three run-time packages for all available platforms (32-bit and 64-bit Windows and Mac OS X) in the order they are listed in project manager. 3 - Next build and install the three design-time packages in the order they are listed in project manager. 4 - Three packages are installed, called: 'Overbyte ICS Common Design-Time Package for Delphi xxx' 'Overbyte ICS FMX Design-Time Package for Delphi xxx' 'Overbyte ICS VCL Design-Time Package for Delphi xxx' Note that the new packaging is still beta/alpha, both package names and included units might change in a future beta drop. The old VCL packages are still there however they do no longer support FireMonkey and of course only one set of packages can be installed in the IDE at the same time, if you want both VCL and FMX install DXe2InstallVclFmx.groupproj only. Currently the XE2 package cache is buggy and should be disabled by adding the -nocache parameter. 5 - The .\Samples\delphi\Platform<em>Demo</em>s\ folder contains FireMonkey sample projects that may all be built with FireMonkey for Mac OS X (and Windows). ALTERNATE INSTALLATION USING THE PACKAGE PROJECT <em>FILE</em>S: For each Delphi and C++ Builder version two package project <em>file</em>s exist in the .\Packages directory. One run-time and one design-time package project <em>file</em>. The run-time <em>file</em> name contains the "Run" suffix. The design-time <em>file</em> name contains the "Design" suffix. PACKAGE PROJECT <em>FILE</em> NAMES - VCL: Delphi 7 : OverbyteIcsD7Run.dpk, OverbyteIcsD7Design.dpk Delphi 2006 : OverbyteIcsD2006Run.bdsproj, OverbyteIcsD2006Design.bdsproj Delphi 2007 : OverbyteIcsD2007Run.dproj, OverbyteIcsD2007Design.dproj Delphi 2009 : OverbyteIcsD2009Run.dproj, OverbyteIcsD2009Design.dproj Delphi 2010 : OverbyteIcsD2010Run.dproj, OverbyteIcsD2010Design.dproj Delphi XE : OverbyteIcsDXeRun.dproj, OverbyteIcsDXeDesign.dproj Delphi XE2 : OverbyteIcsDXe2Run.dproj, OverbyteIcsDXe2Design.dproj Delphi XE3 : OverbyteIcsDXe3Run.dproj, OverbyteIcsDXe3Design.dproj Delphi XE4 : OverbyteIcsDXe4Run.dproj, OverbyteIcsDXe4Design.dproj Delphi XE5 : OverbyteIcsDXe5Run.dproj, OverbyteIcsDXe5Design.dproj Delphi XE6 : OverbyteIcsDXe6Run.dproj, OverbyteIcsDXe6Design.dproj Delphi XE7 : OverbyteIcsDXe7Run.dproj, OverbyteIcsDXe7Design.dproj Delphi XE8 : OverbyteIcsDXe8Run.dproj, OverbyteIcsDXe8Design.dproj Delphi 10 Seattle : OverbyteIcsD10SRun.dproj, OverbyteIcsD10SDesign.dproj C++ Builder 2006 : OverbyteIcsCB2006Run.bdsproj, OverbyteIcsCB2006Design.bdsproj C++ Builder 2007 : OverbyteIcsCB2007Run.cbproj, OverbyteIcsCB2007Design.cbproj C++ Builder 2009 : OverbyteIcsCB2009Run.cbproj, OverbyteIcsCB2009Design.cbproj C++ Builder 2010 : OverbyteIcsCB2010Run.cbproj, OverbyteIcsCB2010Design.cbproj C++ Builder XE : OverbyteIcsCBXeRun.cbproj, OverbyteIcsCBXeDesign.cbproj C++ Builder XE2 : OverbyteIcsCBXe2Run.cbproj, OverbyteIcsCBXe2Design.cbproj C++ Builder XE3 : OverbyteIcsCBXe3Run.cbproj, OverbyteIcsCBXe3Design.cbproj PACKAGE PROJECT <em>FILE</em> NAMES - FireMonkey and VCL: Delphi XE2 FMX/VCL : IcsCommonDXe2Run.dproj, IcsCommonDXe2Design.dproj Delphi XE2 VCL : IcsVclDXe2Run.dproj, IcsVclDXe2Design.dproj Delphi XE2 FMX : IcsFmxDXe2Run.dproj, IcsFmxDXe2Design.dproj Delphi XE3 FMX/VCL : IcsCommonDXe3Run.dproj, IcsCommonDXe3Design.dproj Delphi XE3 VCL : IcsVclDXe3Run.dproj, IcsVclDXe3Design.dproj Delphi XE3 FMX : IcsFmxDXe3Run.dproj, IcsFmxDXe3Design.dproj Delphi XE4 FMX/VCL : IcsCommonDXe4Run.dproj, IcsCommonDXe4Design.dproj Delphi XE4 VCL : IcsVclDXe4Run.dproj, IcsVclDXe4Design.dproj Delphi XE4 FMX : IcsFmxDXe4Run.dproj, IcsFmxDXe4Design.dproj Delphi XE5 FMX/VCL : IcsCommonDXe5Run.dproj, IcsCommonDXe5Design.dproj Delphi XE5 VCL : IcsVclDXe5Run.dproj, IcsVclDXe5Design.dproj Delphi XE5 FMX : IcsFmxDXe5Run.dproj, IcsFmxDXe5Design.dproj Delphi XE6 FMX/VCL : IcsCommonDXe6Run.dproj, IcsCommonDXe6Design.dproj Delphi XE6 VCL : IcsVclDXe6Run.dproj, IcsVclDXe6Design.dproj Delphi XE6 FMX : IcsFmxDXe6Run.dproj, IcsFmxDXe6Design.dproj Delphi XE7 FMX/VCL : IcsCommonDXe7Run.dproj, IcsCommonDXe7Design.dproj Delphi XE7 VCL : IcsVclDXe7Run.dproj, IcsVclDXe7Design.dproj Delphi XE7 FMX : IcsFmxDXe7Run.dproj, IcsFmxDXe7Design.dproj Delphi XE8 FMX/VCL : IcsCommonDXe8Run.dproj, IcsCommonDXe8Design.dproj Delphi XE8 VCL : IcsVclDXe8Run.dproj, IcsVclDXe8Design.dproj Delphi XE8 FMX : IcsFmxDXe8Run.dproj, IcsFmxDXe8Design.dproj Delphi 10 Seattle FMX/VCL: IcsCommonD10SRun.dproj, IcsCommonD10SDesign.dproj Delphi 10 Seattle VCL : IcsVclD10SRun.dproj, IcsVclD10SDesign.dproj Delphi 10 Seattle FMX : IcsFmxD10SRun.dproj, IcsFmxD10SDesign.dproj C++ Builder XE2 FMX/VCL : IcsCommonCBXe2Run.dproj, IcsCommonDXe2Design.dproj C++ Builder XE2 VCL : IcsVclCBXe2Run.dproj, IcsVclCBXe2Design.dproj C++ Builder XE2 FMX : IcsFmxCBXe2Run.dproj, IcsFmxCBXe2Design.dproj C++ Builder XE3 FMX/VCL : IcsCommonCBXe3Run.dproj, IcsCommonDXe3Design.dproj C++ Builder XE3 VCL : IcsVclCBXe3Run.dproj, IcsVclCBXe3Design.dproj C++ Builder XE3 FMX : IcsFmxCBXe3Run.dproj, IcsFmxCBXe3Design.dproj 1 - Open and Build the run-time package project (do not install!). 2 - Open and Install the design-time package project. (Do a <em>File</em>/Open Project, browse to the .\Packages directory. Select the correct <em>file</em> and open it. Then in the project manager view, right-click on the package, then click on either the Build or Install button.) 3 - For Delphi XE2 and later, a 64-bit run-time package can be built by changing the package target platform to 64-bit Windows. This has the same name as the 32-bit package, so a different package output directory needs to be specified in Tools / Options / Delphi Options for 64-bit Windows. After a few seconds, you should have a dialog box telling you the package has been installed with a bunch of new components registered in the Tool Palette under "Overbyte ICS" and "Overbyte ICS SSL". Then do a "Save All" and a "Close All". DELPHI 2006/WIN32, 2007/WIN32, 2009/WIN32, 2010/WIN32, XE/WIN32: Having installed the package, verify that the appropriate Win32 Library Path (Tools / Options / Delphi Options / Library - Win32 / Library Path) has been added, .\Lib subdirectory according to version, ie .\Lib\Debug\Win32\D2007 for Delphi 2007. If not, add it manually. It is not mandatory to add .\Lib to the global Delphi path, but it will be much easier for you because otherwise you'll have to add it to each project. DELPHI XE2/WIN32, XE3/WIN32, XE4/WIN32, XE5/WIN32, XE6/WIN32, XE7/WIN32, XE8/WIN32, 10 Seattle/WIN32, XE2/WIN64, XE3/WIN64, XE4/WIN64, XE5/WIN64, XE6/WIN64, XE7/WIN64, XE8/WIN64, 10 Seattle/WIN64: Similar to above, but the Library path is specified separately for 32-bit and 64-bit Windows Platforms. DELPHI 7: Add VC32 directory path to your library path (Tools menu / Environment Options / Library / Library Path. Add .\Lib\Debug\Win32\D7 path at the end of the existing path). SAMPLE DELPHI PROJECTS Once the package is installed, you may open the sample projects. The samples are split into several directories according to protocols, most with a project group that can be opened in all versions of Delphi. .\Samples\delphi\Broswer<em>Demo</em> .\Samples\delphi\Ftp<em>Demo</em>s\Ftp<em>Demo</em>s.bpg .\Samples\delphi\MailNews<em>Demo</em>s\MailNews<em>Demo</em>s.bpg .\Samples\delphi\Misc<em>Demo</em>s\Misc<em>Demo</em>s.bpg .\Samples\delphi\Other<em>Demo</em>s\Other<em>Demo</em>s.bpg .\Samples\delphi\Platform<em>Demo</em>s\XSamples.groupproj .\Samples\delphi\Socket<em>Demo</em>s\Socket<em>Demo</em>s.bpg .\Samples\delphi\sslinternet\Ssl<em>Demo</em>s.bpg .\Samples\delphi\Web<em>Demo</em>s\Web<em>Demo</em>s.bpg Full details of the sample projects are shown later in this document. You might get some dialog box telling you that resource <em>file</em>s are missing (they may not have been included in the zip <em>file</em> to save space) and are recreated by Delphi. It is OK. Any other error message is a problem you should fix. After all resource <em>file</em>s have been recreated, you should see in the project manager a group of projects. To compile all samples in the group at once, do Project / Build all projects. This may take a few minutes. Note 1: Delphi may run out of memory if you ask to compile all projects at once. If you have not enough RAM, then compile each project individually. Note 2: Delphi has warnings which triggers a lot of messages for 100% OK code. You can turn those warnings off in the project/ options / Compiler messages and deselecting: "Deprecated symbol", "Platform symbol", "unsafe type", "unsafe code", "unsafe typecast". Those are intended for .NET and Linux portability. You can safely ignore them if you run windows. For you facility, I included a utility SetProjectOptions (source code, you must compile it) in the internet directory. This utility will update project options to disable the warnings. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do <em>file</em>/open and select the dpr <em>file</em> in the internet directory. Then Project/Build All. C++ BUILDER 2006, 2007, 2009, 2010, XE, XE2, XE3: Follow the installation procedure described for Delphi 2006. Just change the project group and package name: use CB2006, CBXe, etc, see above. You can't have Delphi 2006 and CBuilder 2006 packages installed at the same time in the IDE. So when switching from one to the other, be sure to remove the one you don't need. Building the FireMonkey CBXE2InstallVclFmx C++ packages for OSX may trigger an ILINK32 error, this is a bug in C++ Builder reported as QC #103668 the Win32 packages should build without errors. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do <em>file</em>/open and select the dpr <em>file</em> in the internet directory. Then Project/Build All. Projects are located in SAMPLES\CPP\INTERNET\CB2006\ (or CB2006, CBXE, etc) with a project group in each directory, OverbyteIcsCB2006Sam.bdsgroup, OverbyteIcsCBXe2Sam.groupproj, etc. It is likely that for each project, C++ Builder complains about a missing .res <em>file</em>. This is not a problem, C++ Builder will recreate it as needed. They have not been included to save space in the zip <em>file</em>. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do <em>file</em>/open and select the dpr <em>file</em> in the internet directory. Then Project/Build All. NOTES: - You may have an error message, using Delphi or C++ Builder complaining about Font.Charset, OldCreateOrder and other properties. Those are new properties in newer Delphi or C++ Builder versions, newer than the version you use. You can safely ignore those errors because those properties are not used by the components nor sample programs. You may encounter this error at run time. To avoid it, you must open each form at design time and ignore the error. Then recompile. If you don't ignore the error at design time, you'll have it at runtime ! - If you have Delphi or C++ Builder complaining about a <em>file</em> not found, add .\source directory to your library path. - If you are using C++ Builder you may encounter an error at link time such as "Unable to open <em>file</em> MWBCB30.LIB" (or other libs). This is a bug in C++ Builder. To solve it, you can edit project option <em>file</em> (right click in project manager) and remove any reference to the missing libraries. - Don't forget that the C++Builder components are located in .\delphi\vc32 which is object pascal source code (not a problem for C++Builder, just indicate that the *.pas <em>file</em>s are displayed when installing). C++Builder will create the *.hpp <em>file</em>s. There are some on-line help <em>file</em>s in the VC32 directory. Available VCL Components ------------------------ - The following is a list of the <em>file</em>s that should be installed in order to properly add all of the available components in this collection: > OverbyteIcsCharsetComboBox.pas Provides easy MIME charset selection > OverbyteIcsDnsQuery DNS lookup component - useful for getting MX records > OverbyteIcsDprUpdFix.pas IDE plugin for Delphi 2009 and 2010 to update old projects > OverbyteIcsEmulVT.pas ANSI terminal emulation in a control > OverbyteIcsFingCli.pas FINGER client protocol - Find information about user > OverbyteIcsFtpCli.pas FTP client protocol - <em>file</em> transfer > OverbyteIcsFtpSrv.pas FTP server protocol - <em>file</em> transfer > OverbyteIcsFtpSrvT.pas FTP server protocol - helpers > OverbyteIcsHttpAppServer.pas HTTP server protocol - used to build advanced web servers > OverbyteIcsHttpProt.pas HTTP client protocol - used by the web > OverbyteIcsHttpSrv.pas HTTP server protocol - used to build web servers > OverbyteIcsLogger.pas A component to log information > OverbyteIcsMimeDec.pas MIME component - decode <em>file</em> attach, use with POP3 > OverbyteIcsMultiProgressBar.pas A segmented progress bar > OverbyteIcsMultipartFtpDownloader.pas FTP client protocol - download one <em>file</em> using simultaneous connections to speedup download > OverbyteIcsMultipartHttpDownloader.pas HTTP client protocol - download one <em>file</em> using simultaneous connections to speedup download > OverbyteIcsNntpCli.pas NNTP client protocol - send and receive newsgroups messages > OverbyteIcsPing.pas ICMP echo protocol - ping a host > OverbyteIcsPop3Prot.pas POP3 client protocol - get mail from mail server > OverbyteIcsReg.pas Register design components > OverbyteIcsSmtpProt.pas SMTP client protocol - send mail to server > OverbyteIcsSmtpSrv.pas SMTP server protocol - receive mail from client > OverbyteIcsSnmpCli.pas SNMP client protocol - network management > OverbyteIcsSnmpMsgs.pas SNMP client protocol - message helper > OverbyteIcsSysLogClient.pas Syslog Client Protocol - receive syslog messages > OverbyteIcsSysLogDefs.pas Syslog Protocol - helpers > OverbyteIcsSysLogServer.pas Syslog Server Protocol - send syslog messages > OverbyteIcsTnCnx.pas TELNET client protocol - terminal emulation protocol > OverbyteIcsTnEmulVT.pas TELNET and ANSI terminal emulation combined > OverbyteIcsTnOptFrm.pas TELNET Client <em>config</em>uration form > OverbyteIcsTnScript.pas TELNET client protocol - with automation > OverbyteIcsWSocket.pas Winsock component - TCP, UDP, DNS,... > OverbyteIcsWSocketE.pas Register procedure and property editor for TWSocket > OverbyteIcsWSocketS.pas Winsock component for building servers > OverbyteIcsWSocketTS.pas Winsock component for building multithreaded servers - The following list support and utilities units: > OverbyteIcsAsn1Utils.pas ASN1 utilities (for TSnmpClient component) > OverbyteIcsAvlTrees.pas Implements a fast cache-like data storage > OverbyteIcsCharsetUtils.pas MIME-charset functions > OverbyteIcsCookies.pas Client Cookie Handling > OverbyteIcsCRC.pas 32 bit CRC computation > OverbyteIcsCsc.pas character set routines > OverbyteIcsDES.pas Implementation of the Data Encryption Standard (DES) > OverbyteIcsDigestAuth.pas HTTP Digest Access Authentication > OverbyteIcsFormDataDecoder.pas Decode a MIME data block as generated by a HTML form > OverbyteIcsHttpCCodZLib.pas Supports GZIP coding for HttpContCod > OverbyteIcsHttpContCod.pas HTTP Content Coding support, uses extra units > OverbyteIcsIcmp.pas ICMP protocol support, used by the PING component > OverbyteIcsIconv.pas Headers for iconv library (LGPL) > OverbyteIcsLIBEAY.pas Delphi encapsulation for LIBEAY32.DLL (OpenSSL) > OverbyteIcsMD4.pas Implementation of the MD4 Message-Digest Algorithm > OverbyteIcsMD5.pas Implementation of the MD5 Message-Digest Algorithm > OverbyteIcsMimeUtil.pas Support routines for MIME standard > OverbyteIcsMLang.pas A few header translations from MS mlang.h > OverbyteIcsNtlmMsgs.pas Client NTLM authentification messages used within HTTP protocol > OverbyteIcsNtlmSsp.pas Server NTLM authentification of user credentials using Windows SSPI > OverbyteIcsOneTimePw.pas One Time Password support functions, used by FTP > OverbyteIcsSHA1.pas Implementation of US Secure Hash Algorithm 1 (SHA1) > OverbyteIcsSocketUtils.pas Cross platform socket utilities for ICS > OverbyteIcsSSLEAY.pas Delphi encapsulation for SSLEAY32.DLL (OpenSSL) > OverbyteIcsSslSessionCache.pas A very fast external SSL-session-cache component > OverbyteIcsSslThrdLock.pas Implementation of OpenSsl thread locking (Windows); > OverbyteIcsSspi.pas A few header translations from MS sspi.h and security.h > OverbyteIcsStreams.pas Fast streams for ICS > OverbyteIcsThreadTimer.pas A <em>custom</em> timer class using <em>custom</em> timer messages from one or more threads > OverbyteIcsTicks64.pas GetTickCount64 support for all versions of Windows > OverbyteIcsTimeList.pas List of items with expiry times, used for WebSessions > OverbyteIcsTypes.pas Common types, mainly for backward compiler compatibility > OverbyteIcsURL.pas Support routines for URL handling > OverbyteIcsUtils.pas Vast number of common utilities, many supporting Unicode for D7/2007 > OverbyteIcsWSockBuf.pas FIFO buffers for TWSocket > OverbyteIcsWebSession.pas Web session support for THttpAppSrv and MidWare > OverbyteIcsWinnls.pas A few header translations for Unicode Normalization in winnls.h > OverbyteIcsWinsock.pas Some Winsock initialisations > OverbyteIcsWndControl.pas A class that encapsulates a windows message queue and a message map > OverbyteIcsZLibDll.pas Zlib support, interface to external zlib.dll functions > OverbyteIcsZlibHigh.pas Zlib support, high level interface for compression and decompression > OverbyteIcsZLibObj.pas Zlib support, interface to zlib linked C OBJ functions FireMonkey Cross Platform Support: ---------------------------------- For Delphi and C++ Builder XE2 and later, FireMonkey Desktop applications are an alternate to VCL Forms applications, supporting cross platforms of Windows 32-bit and 64-bit and Mac OS X (and perhaps other platforms in future). FireMonkey uses different visual components to VCL, while some non-visual components can be used for both VCL and FMX projects, while other components need special versions, such as ICS. Earlier betas of V8 used the conditional define "FMX" which is *no longer required in project options. Instead in your existing ICS FireMonkey app. add either "Ics.Fmx" to the unit scope names in project options or apply the following changes in the uses clause, rename: OverbyteIcsWndControl -> Ics.Fmx.OverbyteIcsWndControl OverbyteIcsWSocket -> Ics.Fmx.OverbyteIcsWSocket OverbyteIcsFtpCli -> Ics.Fmx.OverbyteIcsFtpCli OverbyteIcsFtpSrv -> Ics.Fmx.OverbyteIcsFtpSrv OverbyteIcsHttpProt -> Ics.Fmx.OverbyteIcsHttpProt OverbyteIcsWSocketS -> Ics.Fmx.OverbyteIcsWSocketS OverbyteIcsSmtpProt -> Ics.Fmx.OverbyteIcsSmtpProt.pas OverbyteIcsPop3Prot -> Ics.Fmx.OverbyteIcsPop3Prot.pas OverbyteIcsNntpCli -> Ics.Fmx.OverbyteIcsNntpCli.pas OverbyteIcsPing -> Ics.Fmx.OverbyteIcsPing.pas OverbyteIcsDnsQuery -> Ics.Fmx.OverbyteIcsDnsQuery.pas OverbyteIcsFingCli -> Ics.Fmx.OverbyteIcsFingCli.pas OverbyteIcsSslSessionCache -> Ics.Fmx.OverbyteIcsSslSessionCache.pas OverbyteIcsSslThrdLock -> Ics.Fmx.OverbyteIcsSslThrdLock.pas OverbyteIcsHttpSrv -> Ics.Fmx.OverbyteIcsHttpSrv.pas OverbyteIcsSocketUtils -> Ics.Fmx.OverbyteIcsSocketUtils.pas OverbyteIcsMultipartFtpDownloader -> Ics.Fmx.OverbyteIcsMultipartFtpDownloader.pas OverbyteIcsMultipartHttpDownloader -> Ics.Fmx.OverbyteIcsMultipartHttpDownloader.pas OverbyteIcsHttpAppServer -> Ics.Fmx.OverbyteIcsHttpAppServer.pas OverbyteIcsThreadTimer -> Ics.Fmx.OverbyteIcsThreadTimer.pas OverbyteIcsCharsetComboBox -> Ics.Fmx.OverbyteIcsCharsetComboBox.pas { <em>Demo</em> units } OverbyteIcsWebAppServerCounter -> Ics.Fmx.OverbyteIcsWebAppServerCounter OverbyteIcsWebAppServerMailer -> Ics.Fmx.OverbyteIcsWebAppServerMailer The list above is also the list of units that now have different names in the FireMonkey framework however most of them share the same source <em>file</em>. Dropping a ICS component on the form will add the correct unit name for each framework automatically (don't forget to disable the package cache as described above). Unit OverbyteIcsLibrary.pas has been *deprecated* and ICS IPv8 doesn't use it anymore. If you used it in your own code read the comment in OverbyteIcsLibrary.pas, search for "deprecated". Sample applications: -------------------- With V8, the sample applications are now grouped into directories according to general functionality, to make it easier to compare related samples. Many samples are similar. When searching for something, always look at the date the <em>demo</em>s where created. The most recent is always the best code! In the lists below, ACTIVE!! indicates applications that are actively maintained to test and support new functionality in the ICS components. These may not be simplest samples, but are usually the first to try when learning about a component. Delphi Win32/Win64 Web Browser sample application ------------------------------------------------- .\Samples\delphi\Broswer<em>Demo</em> > FrameBrowserIcs.dpr Web Browser using HtmlViewer component - ACTIVE!! Note this sample needs HtmlViewer component installed Delphi Win32/Win64 FTP sample applications ------------------------------------------ .\Samples\delphi\Ftp<em>Demo</em>s\Ftp<em>Demo</em>s.bpg - Project group > OverbyteIcsBasFtp.dpr Basic FTP client program > OverbyteIcsConFtp.dpr Basic console mode FTP client > OverbyteIcsFtpAsy.dpr Example of asynchronous FTP client > OverbyteIcsFtpMulti.dpr <em>Demo</em> to do several FTP downloads in parallel to get a list of <em>file</em>s > OverbyteIcsFtpMultipartDownload.dpr <em>Demo</em> to FTP download a single large <em>file</em> in several parts in parallel > OverbyteIcsFtpServ.dpr General purpose FTP server, uses TSocketServer - ACTIVE!! > OverbyteIcsFtpThrd.dpr <em>Demo</em> of multithreaded FTP client, see also FTPASY > OverbyteIcsFtpTst.dpr Basic graphical FTP client - ACTIVE!! Delphi Win32/Win64 SMTP, POP3, NNTP sample applications ------------------------------------------------------- .\Samples\delphi\MailNews<em>Demo</em>s\MailNews<em>Demo</em>s.bpg - Project group > OverbyteIcsBasNntp.dpr Basic NNTP client program > OverbyteIcsConPop3.dpr Basic console mode <em>demo</em> for POP3 (mail receive) > OverbyteIcsConSmtp.dpr Basic console mode <em>demo</em> for SMTP (mail send) > OverbyteIcsMailHtml.dpr Example of HTML formatted EMail sending, including embedded images - ACTIVE!! > OverbyteIcsMailRcv.dpr Internet EMail access using POP3 protocol - ACTIVE!! > OverbyteIcsMailSnd.dpr Example of EMail sending using SMTP, including <em>file</em> attach - ACTIVE!! > OverbyteIcsMailSndAsync.dpr Example of parallel EMail sending with multiple connections > OverbyteIcsMime<em>Demo</em>.dpr Example of EMail decoding (attached <em>file</em>s are extracted) - ACTIVE!! > OverbyteIcsNewsReader.dpr Example of TNntpCli component (Send/receive newsgroups) - ACTIVE!! > OverbyteIcsSmtpServer.dpr Internet EMail server using SMTP protocol - ACTIVE!! Delphi Win32/Win64 Miscellaneous applications --------------------------------------------- .\Samples\delphi\Misc<em>Demo</em>s\Misc<em>Demo</em>s.bpg - Project group > OverbyteIcsBufStrmTst.dpr Test of buffered stream classes > OverbyteIcsCacheTest.dpr Test of TCacheTree class used in TSslAvlSessionCache > OverbyteIcsMD4Test.dpr Test program for MD4 unit > OverbyteIcsMD5<em>File</em>.dpr Example of MD5 unit: computer MD5 checksum for <em>file</em>s > OverbyteIcsMD5Test.dpr Test program for MD5 unit > OverbyteIcsOneTimePassword.dpr One Time Password test routines for OverByteIcsOneTimePw unit > OverbyteIcsSHA1Test.dpr Test program for SHA unit > OverbyteIcsThreadTimer<em>Demo</em>.dpr <em>Demo</em> for TIcsThreadTimer > OverbyteIcsTicks64<em>Demo</em>.dpr GetTickCount64 test routines for OverbyteIcsTicks64 unit > OverbyteIcsTimer<em>Demo</em>.dpr Very simple <em>demo</em> for TIcsTimer > OverByteIcsWndControlTest.dpr Test program for windows and threads Delphi Win32/Win64 DNS, Ping, SNMP, Syslog sample applications -------------------------------------------------------------- .\Samples\delphi\Other<em>Demo</em>s\Other<em>Demo</em>s.bpg - Project group > OverbyteIcsBatchDnsLookup.dpr Batch async DNS lookup using DnsLookup (IPv6 and IPv4) > OverbyteIcsConPing.dpr Basic console mode <em>demo</em> for ping component > OverbyteIcsDll1.dpr <em>Demo</em> showing how to use a TWSocket component in a DLL > OverbyteIcsDll2.dpr <em>Demo</em> showing how to use a THttpCli component in a DLL > OverbyteIcsDllTst.dpr Test program calling ICSDLL1 and ICSDLL2 > OverbyteIcsDnsLook.dpr Example of name resolution (IPv6 and IPv4) > OverbyteIcsDnsResolver.dpr Batch async DNS lookup event driven using DnsQuery > OverbyteIcsFinger.dpr Example of TFingerCli component > OverbyteIcsNsLookup.dpr <em>Demo</em> for the DnsQuery component > OverbyteIcsPingTst.dpr <em>Demo</em> for the ping component, includes trace route > OverbyteIcsSnmpCliTst.dpr <em>Demo</em> for SNMP (simple network management protocol) component > OverbyteIcsSysLogClient<em>Demo</em>.dpr <em>Demo</em> for SysLog client component > OverbyteIcsSysLogServer<em>Demo</em>.dpr <em>Demo</em> for SysLog server component Delphi FireMonkey cross-platform samples (Delphi XE2 and later) --------------------------------------------------------------- All these samples may be built for Mac OS X (and Windows). .\Samples\delphi\Platform<em>Demo</em>s\XSamples.groupproj > IcsCli<em>Demo</em>.dproj Example of client for SRV<em>DEMO</em>, IPV4 only > IcsTcpSrvIPv6.dproj Basic server without client forms, event-driven, IPv4/IPV6 > IcsConSmtp.dproj Basic console mode <em>demo</em> for SMTP (mail send) > IcsMailSnd.dproj Example of EMail sending using SMTP, including <em>file</em> attach > IcsMailRcv.dproj Internet EMail access using POP3 protocol > IcsHttpsTst.dproj Example of THttpCli component (GET), show many features > IcsWebServ.dproj <em>Demo</em> of HTTP server, uses TSocketServer > IcsWebAppServ.dproj Advanced HTTP server <em>demo</em>, uses WebServ, adds sessions > IcsFtpTst.dproj Basic graphical FTP client > IcsFtpServ.dproj General purpose FTP server, uses TSocketServer > IcsUdpLstn.dproj UDP listen <em>demo</em> > IcsUdpSend.dproj UDP send <em>demo</em> > IcsBatchDnsLookup.dproj Batch async DNS lookup using DnsLookup (IPv6 and IPv4) > IcsDll1.dproj <em>Demo</em> showing how to use a TWSocket component in a DLL > IcsDll2.dproj <em>Demo</em> showing how to use a THttpCli component in a DLL > IcsDllTst.dproj Test program calling ICSDLL1 and ICSDLL2 > IcsThreadTimer<em>Demo</em>.dproj Very simple <em>demo</em> for TIcsTimer Delphi Win32/Win64 Socket sample applications --------------------------------------------- .\Samples\delphi\Socket<em>Demo</em>s\Socket<em>Demo</em>s.bpg - Project group > OverbyteIcsBinCli<em>Demo</em>.dpr Client program to receive binary and delimited text data. Works with BinTcpSrv <em>demo</em>. > OverbyteIcsCli<em>Demo</em>.dpr Example of client for SRV<em>DEMO</em>, IPV4 only - ACTIVE!! > OverbyteIcsClient5.dpr Basic client GUI applications > OverbyteIcsClient7.dpr Simple client application <em>demo</em>nstrating TWSocket > OverbyteIcsConCli1.dpr Basic client/server console applications > OverbyteIcsConCli2.dpr Basic client/server console applications with thread > OverbyteIcsConSrv1.dpr Basic server application in console mode > OverbyteIcsConUdpLstn.dpr Console application to listen for UDP messages > OverbyteIcsDynCli.dpr <em>Demo</em> of dynamically created TWSocket components > OverbyteIcsMtSrv.dpr Basic server, multi-threaded, see THRDSRV for better code > OverbyteIcsRecv.dpr Simple <em>file</em> receive (server), use with SENDER <em>demo</em> (client) > OverbyteIcsSender.dpr Simple <em>file</em> send (client), use with RECV <em>demo</em> (server) > OverbyteIcsServer5.dpr Basic server GUI applications > OverbyteIcsSocksTst.dpr How to use TWSocket with SOCKS protocol (firewall traversing) > OverbyteIcsSrv<em>Demo</em>.dpr Example of server using a TTable - ACTIVE!! > OverbyteIcsSrvTcp.dpr Basic server without client forms, event-driven > OverbyteIcsSvcTcp.dpr Same as SRVTCP but as an NT/2K/XP service > OverbyteIcsTWSChat.dpr Chat program (both client and server in a single program) > OverbyteIcsTcpSrv.dpr Basic server without client forms, event-driven, IPv4 only - ACTIVE!! > OverbyteIcsTcpSrvIPv6.dpr Basic server without client forms, event-driven, IPv4/IPV6 - ACTIVE!! > OverbyteIcsTelnetClient.dpr Telnet client using a TnEmulVT > OverbyteIcsThrdSrv.dpr Basic multithreaded TCP server, banner sent in main thread > OverbyteIcsThrdSrvV2.dpr Basic multithreaded TCP server, banner sent in worker thread > OverbyteIcsThrdSrvV3.dpr Basic TCP server showing how to use TWSocketThrdServer > OverbyteIcsTn<em>Demo</em>.dpr Telnet client using a TMemo > OverbyteIcsTnSrv.dpr Basic TCP server with client forms, event-driven > OverbyteIcsUdpLstn.dpr UDP listen <em>demo</em> > OverbyteIcsUdpSend.dpr UDP send <em>demo</em> Delphi Win32/Win64 SSL-enabled sample applications -------------------------------------------------- .\Samples\delphi\sslinternet\Ssl<em>Demo</em>s.bpg - Project group > OverbyteIcsHttpsTst.dpr Example of TSslHttpCli component (GET) - ACTIVE!! > OverbyteIcsPemTool.dpr ICS Pem Certificate Tool - Create and import certificates in OpenSLL PEM format > OverbyteIcsSimpleSslCli.dpr Example of simple SSL client using TSslWSocket - ACTIVE!! > OverbyteIcsSimpleSslServer.dpr Example of SSL server using TSslWSocket - ACTIVE!! > OverbyteIcsSslFtpServ.dpr General purpose FTP SSL server, uses TSocketServer - ACTIVE!! > OverbyteIcsSslFtpTst.dpr Basic graphical FTP SSL client - ACTIVE!! > OverbyteIcsSslMailRcv.dpr Internet EMail access using POP3 protocol and SSL - ACTIVE!! > OverbyteIcsSslMailSnd.dpr Example of EMail sending using SMTP and SSL - ACTIVE!! > OverbyteIcsSslNewsRdr.dpr Example of TSslNntpCli component (Send/receive newsgroups) - ACTIVE!! > OverbyteIcsMsVerify.dpr Verify and show an OpenSSL certificate or certificate chain using class TMsCertChainEngine which uses MS crypto API - ACTIVE!! > OverbyteIcsSslSniSrv.dpr Test of Server Name Indication (SNI) in server mode - ACTIVE!! > OverbyteIcsSslWebServ.dpr <em>Demo</em> of HTTPS server, uses TSocketServer - ACTIVE!! > OverbyteIcsSslWebAppServer.dpr Advanced HTTPS server <em>demo</em>, uses WebServ, adds sessions - ACTIVE!! > OverbyteIcsSslSmtpServer.dpr Internet EMail server using SMTP protocol and SSL - ACTIVE!! Delphi Win32/Win64 HTTP sample applications ------------------------------------------- .\Samples\delphi\Web<em>Demo</em>s\Web<em>Demo</em>s.bpg - Project group > OverbyteIcsConHttp.dpr Basic console mode HTTP client > OverbyteIcsHttpAsp.dpr Example of THttpCli component with cookie (POST to an ASP page) > OverbyteIcsHttpAsy.dpr Example of THttpCli component with multiple async requests (GET) > OverbyteIcsHttpChk.dpr Example of THttpCli to check for valid URL using HEAD request > OverbyteIcsHttpDmo.dpr Simple HTTP client <em>demo</em> with proxy > OverbyteIcsHttpGet.dpr Example of THttpCli component (GET into a <em>file</em>) > OverbyteIcsHttpMultipartDownload.dpr <em>Demo</em> application for TMultipartHttpDownloader to download <em>file</em>s using simultaneous connections > OverbyteIcsHttpPg.dpr Example of THttpCli component (POST to CGI script) > OverbyteIcsHttpPost.dpr Example of THttpCli component (POST), work with WebServ sample - ACTIVE!! > OverbyteIcsHttpThrd.dpr Example of THttpCli component (multi-threaded GET) > OverbyteIcsHttpTst.dpr Example of THttpCli component (GET), show many features - ACTIVE!! > OverbyteIcsIsapi.dll Example of FTP client component within an ISAPI extension > OverbyteIcsWebAppServer.dpr Advanced HTTP server <em>demo</em>, uses WebServ, adds sessions - ACTIVE!! > OverbyteIcsWebServ.dpr <em>Demo</em> of HTTP server, uses TSocketServer - ACTIVE!! Two samples are not in the project group since they need extra components installed > OverbyteIcsRest<em>Demo</em>.drp <em>Demo</em> program showing how to use REST API from Google and Yahoo > OverbyteIcsRestJson<em>Demo</em>.drp <em>Demo</em> program showing how to use REST API from Google Search and JSON Sample Notes ------------ Note 1: Not all samples have been rewritten in C++ for C++ Builder. And those rewritten are frequently much simpler. So C++ Builder user: have a look at the Delphi sample too ! Note 2: Follow "UserMade" link on ICS web site to find more sample programs written by ICS users. As explained in the component installation, you may encounter an error loading a sample application or running it. This may be because the last time I loaded the form, I was using another Delphi or C++ Builder version which has new properties. You can safely ignore messages related to those new properties. They are not used in the samples. (The properties are CharSet, OldCreateOrder and others). You can also encounter error about duplicate resources. You can ignore them safely. If you have those errors, open each form in the IDE, ignore the error then recompile. If you don't open the form in the IDE, you'll get the errors at runtime and your program will abort. When installing a new version, always delete old dcu, obj, dcpil and always recompile everything ! Close everything before recompiling the library or packages. When installing a new version, be sure to unzip it in the same directory tree as the old one or you'll mess both versions. About SSL: ---------- TSslWSocket and TSslWSocketServer component are derived from the standard TWSocket and TWSocketServer component. The SSL code is compiled into the component only if you define USE_SSL symbol to your packages and projects. Just add USE_SSL to the defines in the project or package options and recompile everything. The components make use of LIBEAY32.DLL and SSLEAY32.DLL to handle SSL protocol stuff. The DLLs are dynamically loaded at runtime. It means that the DLLs will only be required at runtime when you first make use of a SSL function. Your applications will run on systems without OpenSSL DLLs as long as you don't call any SSL function. The <em>file</em>s may be downloaded from: http://wiki.overbyte.be/wiki/index.php/ICS_Download Most ICS components have their SSL enabled counter part. They work exactly the same way as the regular component except when SSL specific stuff is needed, for example certificates. To support SSL stuff, the SSL-enabled version use some new properties, events and methods. Many sample programs have their SSL-enabled counter part in a separate sources located in SslInternet folder. SSL certificates: To make use of SSL, you frequently need certificates. I provide some <em>demo</em> certificates I built using command line OpenSSL tool. PEM certificates can be opened by a text editor, LF as well as CRLF are allowed as line breaks. CACERT.PEM : A <em>demo</em> certificate for "Example CA" 01CERT.PEM : A <em>demo</em> certificate which is signed by CACERT.PEM 01KEY.PEM : A <em>demo</em> private key for 01CERT.PEM Passphrase is "password". CLIENT.PEM : A <em>demo</em> certificate and private key. Passphrase is "password". SERVER.PEM : A <em>demo</em> certificate and private key. Passphrase is "password". ROOT.PEM : A <em>demo</em> CA certificate. Passphrase is "password". TRUSTEDCABUNDLE.PEM : A <em>demo</em> CA <em>file</em> in PEM format containing multiple well known root CA certificates to be specified in property CA Path of the <em>demo</em> applications. Read the comments included in this <em>file</em>. 6F6359FC.0 : Located in sub directory SslInternet\TrustedCaStore, it's the <em>file</em> CACERT.PEM stored with a hashed <em>file</em> name. Directory TrustedCaStore can be specified in property CA Path of the <em>demo</em> applications. For details about certificate, see the excellent book: "Network security with OpenSSL", O'Reilly, ISBN 10: 0-596-00270-X The SSL <em>demo</em> project OverbyteIcsPemTool may be used to create self signed PEM certificates, certificate requests for commercial use, to convert existing certificates in the Windows Certificate Store to PEM format understood by OpenSSL and to examine PEM certificates. You will find more information in IcsSslHowTo.txt <em>file</em>. Commercial SSL certificates: To avoid browsers giving certificate warning messages, you need to purchase a SSL certificate from one of numerous companies, such as Verisign, Thawte GeoTrust or RapidSSL. Prices vary dramatically and are often cheaper from resellers such as Servertastic than from the main issuing companies. The main purpose of an SSL certificate is to prove the identity of the owner of a web site, ideally the company behind the web site. That usually requires paper work identifying the company is submitted and also proof the domain being protected is owned by that company, it usually also involves telephone calls. Such certificates are usually called fully validated and cost $120 or more each year for a single domain, ie secure.website.com. Wild card certificates cost $350 or more, but protect multiple sub-domains, ie web.website.com as well. Extended Validation certificates cost from $450 a year, and show the company name in green in the address bar. For testing and simple use, instant issued SSL certificates cost from $15 per year and protect a single domain only with automated checking reducing the cost (an email to admin@website.com to prove you receive email for the domain, perhaps a telephone call as well). Note these instant certificates do not include a company name. To buy and install an SSL certificate for use with ICS and OpenSSL follow these steps: 1 - Build the SSL <em>demo</em> project OverbyteIcsPemTool. Take Extras, Create Certificate Requests, fill in the various fields (check other certificates if uncertain, the Common Name is the domain to protect, ie secure.website.com and E-Mail should be an email address at the than domain, ideally admin or administrator, 2048 bits. Click Create, and specify two <em>file</em> names, first for the private key (mykey.pem) then the certificate request <em>file</em> (myreq.pem). The request can also be done using OpenSSL command line arguments, or you can build it into your own application. 2 - Choose you SSL supplier and certificate type, at some point during the ordering process you will be asked for the certificate request, so open the PEM <em>file</em> you saved with a text editor and copy the base64 encoded block starting -BEGIN CERTIFICATE REQUEST- into the web form. It should be decoded and displayed so you check it's correct. The private key is not needed for the certificate to be issued. At this point the validation process starts as mentioned above, which might take hours or weeks to complete. 3 - Eventually the SSL certificate should be issued, either by email or made available to download from the supplier's web site. It should be in X.509 format in a base64 encoded block starting -BEGIN CERTIFICATE- which should be saved as a PEM <em>file</em> (mycert.pem). There should also be an Intermediate CA certificate, with which your new certificate was signed, which should also be saved as a <em>file</em> (mycacert.pem). This may also be downloadable from the supplier as a bundle <em>file</em> and should be common to any certificates they issue, ie RapidSSL_CA_bundle.pem. 4 - The OverbyteIcsPemTool tool has a View PEM button that allows examination of your new PEM <em>file</em>s. 5 - The three PEM <em>file</em>s now need to be attached to the SslContext component in your application, with properties SslCert<em>File</em>, SslPrivKey<em>File</em> and SslCA<em>File</em>. The request certificate <em>file</em> has no further use. Support: -------- There is a mailing list to discuss F. Piette's components and applications. To subscribe surf to http://lists.elists.org/mailman/listinfo/twsocket. Do not use an aliased EMail address, use your real EMail address, the one you'll use to post messages. After asking for subscription, you'll receive a confirmation email you must reply to it or you will _not_ be added to the subscriber's list (this is to check for email path and also make sure someone doesn't subscribe you without your consent). Once you have been registered with the mailing list processor, you can send messages to twsocket@elists.org. Every subscriber will receive a copy of your message. I will respond, but anybody is welcome to respond to each other's messages. So every body can share his expertise. There are many other useful mailing lists at http://www.elists.org ! Before asking a question, browse the message archive you can download from the support page on the web site (click the "support" button from main page) and from the mailing list web site http://lists.elists.org/mailman/listinfo/twsocket. Google is also archiving the list with some delay. If you found a bug, please make a short program that reproduces the problem attach it to a message addressed to me. If I can reproduce the problem, I can find a fix ! Do not send exe <em>file</em> but just source code and instructions. Always use the latest version (beta if any) before reporting any bug. You are also encouraged to use the support mailing list to ask for enhancements. You are welcome to post your own code. The support mailing list has sometimes a heavy traffic. If it is too much for you, you can select "digest" mode in which mailing list processor will mail you only one big message per day. To select digest mode goto http://lists.elists.org/mailman/listinfo/twsocket. You can also subscribe to another mailing list called twsocket-announce which will receive only very few messages when major bug fixes or updates are done. The subscription process is the same as for the other mailing list. See above procedure. Release notes ------------- There is no global release notes. Each component and sample has his own history. You can find those histories in the comment in the beginning of each source <em>file</em>. There are also a bunch of useful comments in the source code. You should at least browse the source for the components you are interested in. MidWare ------- If you wants to build client/server applications using TCP/IP protocol, you can do it easily with ICS. But you can do it much more easily using another freeware product from Fran鏾is Piette: MidWare. Available from the same web site http://www.overbyte.be. francois.piette@overbyte.be francois.piette@swing.be http://www.overbyte.be/ http://wiki.overbyte.be/</a></div><div data-report-view="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/gz19871113/article/details/108591801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAeZJREFUWEdjZGBgYPhQkSn49/v/EAbG/2oM/xn4QWI0A4wMHxn+M95i5mRcI9Ax/T0jyPI/P/7VM/5n4KKZpVgM/s/I8I2Fg6mR8W1+RioDw39TelqOsIvxNOPbgvRumgc7Lt8xMnxkfJufPmtgfA+xddQBeEOAv7opgImHh5PoKPr169fnOdN3/Xn88DOxevA6QLC9L5KRk4uHWMNA6v59+fz50+TeTf9evvhGjD6qOwDsiI8fPnya2LX537t3Pwg5giYOADvi3Zs3nyZ0bfn36dNvfI6gmQNAlv599fLlxwmd2xi+ffuDsyjAVw6QkwbQLfr76MHDj30duwbMAf+/f/vyvrJoOcUO+Pf82dOv2zadIZSoQPLcXn4mTJJS0iA21Rzw+/6de58n9uwlxgG8+SXOrIoqSlR1ADEWY1NDtRBg+PXrx7+PHz4S4xAmfgF+BjY2DqqGwIBHwb/3797+unzhFjEhwKZroMYkKCRM1RAgxmKapoF/r1+9/HHs8GVslrCISfCzWVpjbdZRLRHiSwOsugZivMkZ/jQNAYa/f//8//UTe+3GyMTMyMGBtd1AtRAY8DQwIA7gTcuxZuDkABcoZIPvP358njXlKFmVEdmWkqBxMHRMBrhrNuCdU1B0DWT3HACwkGScZb+cwwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://blog.csdn.net/gz19871113/article/details/108591801" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/gz19871113/article/details/108591801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="title" data-v-ca2d15ac>【<em>ASP.NET</em> Identity系列教程(一)】<em>ASP.NET</em> Identity入门</a></div> <a target="_blank" href="https://blog.csdn.net/gz19871113/article/details/108591801" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/gz19871113/article/details/108591801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1751430132739_16364\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="desc" data-v-ca2d15ac>注:本文是【<em>ASP.NET</em> Identity系列教程】的第一篇。本系列教程详细、完整、深入地介绍了微软的<em>ASP.NET</em> Identity技术,描述了如何运用<em>ASP.NET</em> Identity实现应用程序的用户管理,以及实现应用程序的认证与授权等相关技术,译者希望本系列教程能成为掌握<em>ASP.NET</em> Identity技术的一份完整而有价值的资料。读者若是能够按照文章的描述,一边阅读、一边实践、一边理解,定能有意想不到的巨大收获!希望本系列博文能够得到广大园友的高度推荐。 13 Getting S..</a></div></div></div></div> <div class="public_pc_right_footer2020" style="display:none;" data-v-4a5a7f56></div></div> <div id="right-floor-user-content_562" data-editor="{"type":"floor","pageId":143,"floorId":562}" class="user-right-floor right-box main-box detail-user-right" data-v-229a00b0><div class="__vuescroll" style="height:100%;width:100%;padding:0;position:relative;overflow:hidden;"><div class="__panel __hidebar" style="position:relative;box-sizing:border-box;height:100%;overflow-y:hidden;overflow-x:hidden;transform-origin:;transform:;"><div class="__view" style="position:relative;box-sizing:border-box;min-width:100%;min-height:100%;"><!----><div comp-data="[object Object]" baseInfo="[object Object]" community="[object Object]" class="introduce" data-v-4722a3ae><div class="introduce-title" data-v-4722a3ae><div class="img-info" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/DownloadReward" class="community-img" data-v-4722a3ae><img src="https://g.csdnimg.cn/static/user-img/default-user.png" alt data-v-4722a3ae> <div title="下载资源悬赏专区" class="community-name" data-v-4722a3ae> 下载资源悬赏专区 </div></a></div></div> <div class="content" data-v-4722a3ae><div class="detail" data-v-4722a3ae><div title="13656" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 13,656 </p> <p class="desc" data-v-4722a3ae> 社区成员 </p></div> <div title="12677448" class="item" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/DownloadReward" target="_blank" data-v-4722a3ae><p class="num" data-v-4722a3ae> 12,677,448 </p> <p class="desc" data-v-4722a3ae> 社区内容 </p></a></div></div> <div class="detail-btns" data-v-4722a3ae><div class="community-ctrl-btns_wrapper" data-v-0ebf603c data-v-4722a3ae><div class="community-ctrl-btns" data-v-0ebf603c><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-160be461 data-v-0ebf603c><div data-report-click="{"spm":"3001.5975"}" data-v-160be461><img src="https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png" alt="" class="img sendTopic" data-v-160be461 data-v-0ebf603c> <span data-v-160be461 data-v-0ebf603c>发帖</span></div> <!----> <!----></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png" alt="" class="img me" data-v-0ebf603c> <span data-v-0ebf603c>与我相关</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png" alt="" class="img task" data-v-0ebf603c> <span data-v-0ebf603c>我的任务</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div class="community-share" data-v-4ca34db9 data-v-0ebf603c><div class="handle-item share" data-v-ca030a68 data-v-4ca34db9><span height="384" data-v-ca030a68><div role="tooltip" id="el-popover-5305" aria-hidden="true" class="el-popover el-popper popo share-popover" style="width:265px;display:none;"><!----><div id="tool-QRcode" class="QRcode" data-v-ca030a68><img src="https://csdnimg.cn/release/cmsfe/public/img/shareBg3.9519d347.png" alt="" class="share-bg" data-v-ca030a68> <div class="share-bg-box" data-v-ca030a68><div class="share-content" data-v-ca030a68><img src="https://g.csdnimg.cn/static/user-img/default-user.png" alt="" class="share-avatar" data-v-ca030a68> <div class="share-tit" data-v-ca030a68>下载资源悬赏专区</div> <div class="share-dec" data-v-ca030a68>CSDN 下载资源悬赏专区</div> <span class="copy-share-url" data-v-ca030a68>复制链接</span> <div class="shareText" data-v-ca030a68> </div></div> <div class="share-code" data-v-ca030a68><div class="qrcode" data-v-ca030a68></div> <div class="share-code-text" data-v-ca030a68>扫一扫</div></div></div></div> </div><span class="el-popover__reference-wrapper"><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png" alt="" class="img share" data-v-0ebf603c> <span data-v-0ebf603c>分享</span></div></span></span></div> <!----></div></div></div> <!----> <div data-v-4fb59baf data-v-0ebf603c><div class="el-dialog__wrapper ccloud-pop-outer2" style="display:none;" data-v-4fb59baf><div role="dialog" aria-modal="true" aria-label="dialog" class="el-dialog el-dialog--center" style="margin-top:15vh;width:70%;"><div class="el-dialog__header"><span class="el-dialog__title"></span><!----></div><!----><div class="el-dialog__footer"><span class="dialog-footer clearfix" data-v-4fb59baf><div class="confirm-btm fr" data-v-4fb59baf>确定</div></span></div></div></div></div></div></div></div> <div style="display:none;" data-v-4722a3ae data-v-4722a3ae><!----> <div class="introduce-desc" data-v-4722a3ae><div class="introduce-desc-title" data-v-4722a3ae>社区描述</div> <span data-v-4722a3ae> CSDN 下载资源悬赏专区 </span></div></div> <div class="introduce-text" data-v-4722a3ae><div class="label-box" data-v-4722a3ae><span class="label" data-v-4722a3ae>其他</span> <span class="label" data-v-4722a3ae>技术论坛(原bbs)</span> <!----></div></div> <!----> <div class="manage" data-v-4722a3ae><div class="manage-inner" data-v-4722a3ae><span data-v-4722a3ae>社区管理员</span> <ul data-v-4722a3ae><li data-v-4722a3ae><a href="https://blog.csdn.net/community_269" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt="下载资源悬赏专区社区" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li></ul></div></div> <div class="actions" data-v-4722a3ae><!----> <div style="flex:1;" data-v-4722a3ae><div class="join-btn" data-v-4722a3ae> 加入社区 </div></div> <!----> <!----></div> <div class="el-dialog__wrapper" style="display:none;" data-v-38c57799 data-v-4722a3ae><div role="dialog" aria-modal="true" aria-label="获取链接或二维码" class="el-dialog join-qrcode-dialog" style="margin-top:15vh;width:600px;"><div class="el-dialog__header"><span class="el-dialog__title">获取链接或二维码</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"></i></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer" data-v-38c57799></span></div></div></div> <div class="collapse-btn" data-v-4722a3ae><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAgCAYAAACFM/9sAAAAAXNSR0IArs4c6QAAAi1JREFUaEPtl01u01AUhc+N8wMSO4AxzJAqwQpKQsdtbMOICmKnwCKQ2ACDIgotrYKiduIiVZ10B0CBAjtAbICfooomJr3IcUoTiVLb15GNuG/67nm65/M5AxP0iAiQSK1iKEBhCBSgAhQSEMo1gQpQSEAo1wQqQCEBoVwT+K8CnLnWvER8cOHMaf95q9Xaj+vDtp3LPeD83u6p9a2t+U5cfVrzmSTQNOfOgg4+ATDAeNHp/Jza3Fz5HtWUZbl3GXjYn2e+53lL96Nq057LBOD0dOOcUSx8BFAcGHpZLlWmVlfnd08yaJrubRAe/Z77HwEG5kdS1E8StgFc9bzFb8dBrNtukxgLwOAXNEF6T/pAce8zSeDhknXbuUNMQRUHe/BrMNX+BNGyHIdBT45m6VVn36/FqX5cOFHmMwUYJrE5x+CgkuEujLe+361ubLS+HhowzeYtEC8NzWyXy5ValMpHgSCZyRxgsLxpui4Ij4/ShZ1S0aiurS18sSznJoOeDt29AaP6t6pLgMTV5gJgsHTddhvEWBwC9Y6AZww8AFA4Lp1xDac9nxuAYZ37aQuqGgIbPTt+t3tluNppw0jyXq4AhnV2ZkG0PAKR8b5UMiaDSicxOU5N7gCGSXRvMLAygPgB3Jv0vOXP4wSR9O1cAgzMzFxvXDR6hYlK5cd6u93eS2pw3LrcAhy38bTeV4BCkgpQAQoJCOWaQAUoJCCUawIVoJCAUK4JVIBCAkL5L1yapyGdIBwvAAAAAElFTkSuQmCC" alt data-v-4722a3ae></div></div><!----><!----><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor-user-right-rank" data-v-3d3affee><div class="el-tabs el-tabs--top" data-v-3d3affee><div class="el-tabs__header is-top"><div class="el-tabs__nav-wrap is-top"><div class="el-tabs__nav-scroll"><div role="tablist" class="el-tabs__nav is-top" style="transform:translateX(-0px);"><div class="el-tabs__active-bar is-top" style="width:0px;transform:translateX(0px);ms-transform:translateX(0px);webkit-transform:translateX(0px);"></div></div></div></div></div><div class="el-tabs__content"><div role="tabpanel" id="pane-integral" aria-labelledby="tab-integral" class="el-tab-pane" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-3" aria-labelledby="tab-3" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-5" aria-labelledby="tab-5" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-6" aria-labelledby="tab-6" class="el-tab-pane" style="display:none;" data-v-3d3affee></div></div></div> <div class="floor-user-right-rank-score" data-v-608528ce data-v-3d3affee><div class="floor-user-right-rank-score-tabs" data-v-608528ce><ul data-v-608528ce><li data-v-608528ce> 近7日 </li><li data-v-608528ce> 近30日 </li><li class="active" data-v-608528ce> 至今 </li></ul></div> <div class="floor-user-right-rank-common" data-v-46cf600d data-v-608528ce><div class="rank-list" data-v-46cf600d><!----> <div class="no-data loading" data-v-46cf600d><i class="el-icon-loading" data-v-46cf600d></i> <p data-v-46cf600d>加载中</p></div> <!----> <a href="https:///DownloadReward/rank/list/total" target="_blank" class="show-more" data-v-46cf600d> 查看更多榜单 </a></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor comunity-rule" data-v-3cfa4dbd><div class="title" data-v-3cfa4dbd> 社区公告 </div> <div class="contain" data-v-3cfa4dbd><div class="inner-content" data-v-3cfa4dbd>暂无公告</div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="user-right-adimg empty-arr" data-v-15c6aa4f><div class="adImgs" data-v-2a6389b9 data-v-15c6aa4f><!----> <div data-v-2a6389b9><div data-v-2a6389b9></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="ai-entrance" data-v-eb1c454c><p data-v-eb1c454c>试试用AI创作助手写篇文章吧</p> <div class="entrance-btn-line" data-v-eb1c454c><a href="https://mp.csdn.net/edit?guide=1" target="_blank" data-report-click="{"spm":"3001.9712"}" data-report-query="spm=3001.9712" class="entrance-btn" data-v-eb1c454c>+ 用AI写文章</a></div></div></div></div></div></div></div></div></div></div> <!----></div></div></div> <div> <script type="text/javascript" src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" defer></script> </div></div></div><script> window.__INITIAL_STATE__= {"csrf":"FJpdP2Js-qdGtXtwJonS_PkIA6cPa3s7s8-Q","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_36287181960-1751430125718-660373; csrfToken=WrRcgGXTV6E_b66DbIezkiYd; uuid_tt_dd=10_36287181960-1751430125718-660373; dc_session_id=10_1751430125718.385279; dc_sid=bb52af58c7c6873f907817414af7939a","ip":"216.73.216.116","pageData":{"page":{"pageId":143,"title":"社区详情","keywords":"社区详情","description":"社区详情","ext":{"isMd":"true","armsfe1":"{pid:\"dyiaei5ihw@1a348e4d05c2c78\",appType:\"web\",imgUrl:\"https:\u002F\u002Farms-retcode.aliyuncs.com\u002Fr.png?\",sendResource:true,enableLinkTrace:true,behavior:true}","redPacketCfg":"{\"presetTitle\":[\"成就一亿技术人!\",\"大吉大利\",\"节日快乐\",\"Bug Free\",\"Hello World\",\"Be Greater Than Average!!\"],\"defaultTitle\":\"成就一亿技术人!\",\"preOpenSty\":{},\"redCardSty\":{}}","blogStar":"[{\"year\":\"2021\",\"enable\":true,\"communityIds\":[3859],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2021\"},{\"year\":\"2022\",\"enable\":true,\"communityIds\":[3860],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2022\"}]","mdVersion":"https:\u002F\u002Fcsdnimg.cn\u002Frelease\u002Fmarkdown-editor\u002F1.1.0\u002Fmarkdown-editor.js","componentSortCfg":"{ \"right\":[\"ratesInfo\",\"cty-profile\",\"pub-comp\",\"user-right-introduce\",\"post-event\",\"my-mission\", \"user-right-rank\",\"user-right-rule\",\"user-right-adimg\"] }","showCknowDetail":"{\"show\":true,\"reportView\":true,\"url\":\"https:\u002F\u002Fai.csdn.net\u002Fhomework?utm_source=cknow_bbs_detail\",\"spm\":\"1035.2022.3001.10801\"}","show_1024":"{\"enable\":false,\"useWhitelist\":false,\"whitelist\":[76215],\"home\":\"https:\u002F\u002F1111.csdn.net\u002F\",\"logo\":\"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221104102741.png\",\"hideLive\":true}","iframes":"[\"3859\"]","pageCfg":"{\"disableDownloadPDF\": false,\"hideSponsor\":false}"}},"template":{"templateId":71,"templateComponentName":"ccloud-detail","title":"ccloud-detail","floorList":[{"floorId":562,"floorComponentName":"floor-user-content","title":"社区详情页","description":"社区详情页","indexOrder":3,"componentList":[{"componentName":"baseInfo","componentDataId":"cloud-detail1","componentConfigData":{},"relationType":3},{"componentName":"user-right-introduce","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-recommend","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rank","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rule","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-adimg","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"default2014LiveRoom","componentDataId":"20221024DefaultLiveRoom","componentConfigData":{},"relationType":3}]}]},"data":{"baseInfo":{"customDomain":"","uriName":"DownloadReward","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDownloadReward","owner":{"userName":"community_269","nickName":"下载资源悬赏专区社区","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","position":"","companyName":""},"user":{"userRole":3,"userName":null,"nickName":null,"avatarUrl":null,"rank":null,"follow":2,"communityBase":null,"joinCollege":null,"isVIP":null},"community":{"name":"下载资源悬赏专区","description":"CSDN 下载资源悬赏专区","avatarUrl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-img\u002Fdefault-user.png","qrCode":"","createTime":"2007-03-31","communityAvatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","communityNotice":null,"userCount":13656,"contentCount":12677448,"followersCount":9339,"communityRule":"","communityId":381,"bgImage":"","hashId":"y3w026rz","domain":"","uriName":"DownloadReward","externalDisplay":1,"adBanner":{"img":"","url":"","adType":0,"adCon":null},"rightBanner":{"img":"","url":"","adType":0,"adCon":null},"tagId":null,"tagName":null,"communityType":1,"communityApplyUrl":"https:\u002F\u002Fmarketing.csdn.net\u002Fquestions\u002FQ2106040308026533763","joinType":2,"visibleType":0,"collapse":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_269","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":[{"id":135216,"name":"其他"}],"customTags":[{"id":6,"name":"技术论坛(原bbs)"}]}},"tabList":[{"tabId":1540,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":-1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDownloadReward?typeId=1540","iframe":false,"sortType":1},{"tabId":1640320,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDownloadReward?typeId=1640320","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":"下载资源悬赏专区","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDownloadReward","communityType":1,"content":{"id":"395905692","contentId":395905692,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F395905692","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F395905692","createTime":"2020-02-21 05:00:17","updateTime":"2021-05-28 20:31:18","resourceUsername":"weixin_39821526","best":0,"top":0,"text":null,"publishDate":"2020-02-21","lastReplyDate":"2020-02-21","type":"13","nickname":"weixin_39821526","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","username":"weixin_39821526","commentCount":0,"diggNum":0,"digg":false,"viewCount":20,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"custom config file demo in ASP.NET下载","insertFirst":false,"likeInfo":null,"description":"if you wan to use your custome config settings you can inherit the IConfigurationSectionHandler if your .net version is 1.x you can inherit the ConfigurationSection if your .net version is 2.0 if you want to store you config settings in another file,","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221027055806.png","content":"if you wan to use your custome config settings \u003Cbr \u002F\u003E\nyou can inherit the IConfigurationSectionHandler if your .net version is 1.x \u003Cbr \u002F\u003E\nyou can inherit the ConfigurationSection if your .net version is 2.0 \u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\nif you want to store you config settings in another file,YOU CAN DOWNLOAD THIS DEMO PROJECT\u003Cbr \u002F\u003E\n相关下载链接:\u003Ca href=\"\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxiahouwen\u002F1154349?utm_source=bbsseo\" target=\"_blank\" \u003E\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxiahouwen\u002F1154349?utm_source=bbsseo\u003C\u002Fa\u003E","mdContent":null,"pictures":null,"videoInfo":null,"linkInfo":null,"student":{"isCertification":false,"org":"","bala":""},"employee":{"isCertification":false,"org":"","bala":""},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":{"userName":"weixin_39821526","roleId":386,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F8.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","nickname":"weixin_39821526","selfdesc":"","createdate":"2017-08-12 11:14:24","days":"2882","years":"8","username":"weixin_39821526","school":null,"company":null,"job":null},"userName":"weixin_39821526","event":"创建了帖子","body":"2020-02-21 05:00","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":0,"total":0,"list":[],"maxPageSize":3000},"defaultActiveTab":1540,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxiahouwen\u002F1154349","title":"\u003Cem\u003Ecustom\u003C\u002Fem\u003E \u003Cem\u003Econfig\u003C\u002Fem\u003E \u003Cem\u003Efile\u003C\u002Fem\u003E \u003Cem\u003Edemo\u003C\u002Fem\u003E in \u003Cem\u003EASP.NET\u003C\u002Fem\u003E","desc":"if you wan to use your \u003Cem\u003Ecustom\u003C\u002Fem\u003Ee \u003Cem\u003Econfig\u003C\u002Fem\u003E settings \nyou can inherit the I\u003Cem\u003EConfig\u003C\u002Fem\u003EurationSectionHandler if your .net version is 1.x \nyou can inherit the \u003Cem\u003EConfig\u003C\u002Fem\u003EurationSection if your .net version is 2.0 \n\nif you want to store you \u003Cem\u003Econfig\u003C\u002Fem\u003E settings in another \u003Cem\u003Efile\u003C\u002Fem\u003E,YOU CAN DOWNLOAD THIS \u003Cem\u003EDEMO\u003C\u002Fem\u003E PROJECT","createTime":"2009-03-29 12:37:17","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1154349-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1154349-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxiahouwen\u002F1154349\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1154349-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxiahouwen\u002F1154349\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1154349-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002FE_wsq\u002F1896811","title":"ext-2.3.0+CKEditor 3.0.1+ckfinder_asp_1.4配置详解及工程源码","desc":"ext-2.3.0+CKEditor 3.0.1+ckfinder_asp_1.4配置详解\n\n一、去http:\u002F\u002Fcksource.com\u002F\u003Cem\u003E下载\u003C\u002Fem\u003E这两个东西\n二、去http:\u002F\u002Fwww.extjs.com\u002F\u003Cem\u003E下载\u003C\u002Fem\u003Eext-2.3.0\n三、将ext-2.3.0、CKEditor 3.0.1、ckfinder_asp_1.4,取出解压后的文件夹,真接放到站点根目录,目录结构为:\nWEBROOT\n|--ckeditor\n|--finder\n|--ext-2.3.0\n|--js\n|--css\n\n修改ckeditor目录下的\u003Cem\u003Econfig\u003C\u002Fem\u003E.js如下:\nCKEDITOR.editor\u003Cem\u003EConfig\u003C\u002Fem\u003E = function( \u003Cem\u003Econfig\u003C\u002Fem\u003E )\n{\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.language = 'zh-cn'; \u002F\u002F配置语言 \n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.uiColor = 'DFE8F6';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.skin = 'office2003';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.height = 320;\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.width = '100%';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.font_names = '宋体\u002F宋体;黑体\u002F黑体;仿宋\u002F仿宋_GB2312;楷体\u002F楷体_GB2312;隶书\u002F隶书;幼圆\u002F幼圆;'+ \u003Cem\u003Econfig\u003C\u002Fem\u003E.font_names ; \n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.\u003Cem\u003Efile\u003C\u002Fem\u003EbrowserUploadUrl = 'ckfinder\u002Fcore\u002Fconnector\u002Fasp\u002Fconnector.asp?command=QuickUpload&type=\u003Cem\u003EFile\u003C\u002Fem\u003Es';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.\u003Cem\u003Efile\u003C\u002Fem\u003EbrowserImageUploadUrl = 'ckfinder\u002Fcore\u002Fconnector\u002Fasp\u002Fconnector.asp?command=QuickUpload&type=Images';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.\u003Cem\u003Efile\u003C\u002Fem\u003EbrowserFlashUploadUrl = 'ckfinder\u002Fcore\u002Fconnector\u002Fasp\u002Fconnector.asp?command=QuickUpload&type=Flash';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.\u003Cem\u003Efile\u003C\u002Fem\u003EbrowserWindowWidth = '1000';\n\t\u003Cem\u003Econfig\u003C\u002Fem\u003E.\u003Cem\u003Efile\u003C\u002Fem\u003EbrowserWindowHeight = '700'\n};\n\n在js目录中加入ExtCkeditor.js:\n\u002F****************************************************\n* CKEditor Extension\n*****************************************************\u002F\nExt.form.CKEditor = function(\u003Cem\u003Econfig\u003C\u002Fem\u003E){\n this.\u003Cem\u003Econfig\u003C\u002Fem\u003E = \u003Cem\u003Econfig\u003C\u002Fem\u003E;\n Ext.form.CKEditor.superclass.constructor.call(this, \u003Cem\u003Econfig\u003C\u002Fem\u003E);\n};\n\nExt.extend(Ext.form.CKEditor, Ext.form.TextArea, {\n onRender : function(ct, position){\n if(!this.el){\n this.defaultAutoCreate = {\n tag: \"textarea\",\n autocomplete: \"off\"\n };\n }\n Ext.form.TextArea.superclass.onRender.call(this, ct, position);\n\t\tCKEDITOR.replace(this.id, this.\u003Cem\u003Econfig\u003C\u002Fem\u003E.CK\u003Cem\u003EConfig\u003C\u002Fem\u003E);\n },\n\t\n setValue : function(value){\n Ext.form.TextArea.superclass.setValue.apply(this,[value]);\n\t\tCKEDITOR.instances[this.id].setData( value );\n },\n\n getValue : function(){\n\t\tCKEDITOR.instances[this.id].updateElement();\n\t\treturn Ext.form.TextArea.superclass.getValue(this);\n },\n\n getRawValue : function(){\n\t\tCKEDITOR.instances[this.id].updateElement();\t","createTime":"2009-12-12 20:29:08","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-1896811-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-1896811-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002FE_wsq\u002F1896811\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-1896811-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002FE_wsq\u002F1896811\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-1896811-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Ffanshuzone\u002F196338","title":"cuteEditor6.0","desc":"\u003Cbr\u002F\u003ECuteEditor功能特点 \u003Cbr\u002F\u003E是什么使CuteEditor成为Html在线编辑器的领航者?除了其强大的功能和方便的使用, 这里还有一些顶尖的技术因素是CuteEditor编辑器成为你编辑和发布Web内容的最佳选择: \u003Cbr\u002F\u003E 界面简洁加载速度快 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E由于才有了很多优化方法,所以CuteEditor非常简单、小巧、装载速度快,但仍然保持功能强大、执行效率高的特点。 \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 跨浏览器,跨平台的所见即所得在线html编辑器 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E兼容市面上最流行的ie5.5+,firefox1.0+,mozilla1.3+, netscape7+和Safari(1.3+)浏览器,并且包括Mac和Linux操作平台。 \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E CuteEditor遵循Web标准,没有类似 \u003CFONT\u003E 这种标签 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E你的Html编辑器还在使用类似 \u003CFONT\u003E这种标签么? CuteEditor会帮助你构建用户最新Web标准的html代码标签,自动生成简洁的HTML\u002FXHTML代码。 为什么要遵循Web标准? \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E学习应用Web标准有很多益处,下面给几个简单例子:\u003Cbr\u002F\u003E\u003Cbr\u002F\u003E获得好的搜索引擎排名: The separation of content and presentation makes the content represent a larger part of the total \u003Cem\u003Efile\u003C\u002Fem\u003E size. Combined with semantic markup this will improve search engine rankings. \u003Cbr\u002F\u003E更快的\u003Cem\u003E下载\u003C\u002Fem\u003E和加载网页: Less HTML results in smaller \u003Cem\u003Efile\u003C\u002Fem\u003E sizes and quicker downloads. Modern web browsers render pages faster when they are in their standards mode than when they are in their backwards compatible mode. \u003Cbr\u002F\u003E适应未来网页浏览器: When you use defined standards and valid code you future-proof your documents by reducing the risk of future web browsers not being able to understand the code you have used. \u003Cbr\u002F\u003E代码编写简单,维护方便: Using more semantic and structured HTML makes it easier and quicker to understand code created by somebody else. \u003Cbr\u002F\u003E适应其他设备: Semantic HTML, where structure is separated from presentation, makes it easier for screen readers and alternative browsing devices to interpret the content. \u003Cbr\u002F\u003E非常好的适应性: A semantically marked up document can be easily adapted to print and alternative browsing devices, like handheld computers and cellular phones, just by linking to a different CSS \u003Cem\u003Efile\u003C\u002Fem\u003E. You can also make site-wide changes to presentation by editing a single \u003Cem\u003Efile\u003C\u002Fem\u003E. \u003Cbr\u002F\u003ERead more:\u003Cbr\u002F\u003E我的网页符合Web标准,你的呢? \u003Cbr\u002F\u003E 能自动清理HTML代码中Word标记 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003EWhen text is pasted from Microsoft Word allot of unnecessary word specific markup is carried across. This can result in web pages that take an unnecessarily long time to download. The Paste from Word button solves this by removing word markup before pasting the text into your page. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持W3C WAI和section 508的无障碍引导 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor optional accessibility settings ensure your site complies with Section 508, so people with disabilities can have full access to your content.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 输出的HTML或不错的XHTML供你选择 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor supports output well-formed XHTML. Your choice of XHTML 1.0 or HTML 4.01 output. \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 无限次的撤销\u002F恢复\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EMany of the other editors on the market cannot undo or redo certain actions, and certain table operations - such as cell merge or column deletion. Cute Editor 4.0 has a new \u003Cem\u003Ecustom\u003C\u002Fem\u003E undo\u002Fredo implementation to make you can now safely undo those actions. \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 多语言支持,通过简单设置XML即可完成 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EAll labels, buttons, tooltips and messages are located in external XML \u003Cem\u003Efile\u003C\u002Fem\u003Es, so that the language of the editor can be switched with a single property. You can also create a new language in a matter of minutes. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 完全支持页面编辑(从 \u003CHTML\u003E 到 \u003C\u002FHTML\u003E) (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor 4.0 allows you to edit a full HTML page, including \u003Ctitle\u003E, \u003C!DOCTYPE...\u003E and some other options. You can also insert Form elements (checkbox, button, textarea, etc.) and modify certain properties of the element.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 默认换行为软回车 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EMost other editors insert double line returns which can be annoying for clients who are used to editing in Microsoft Word. CuteEditor can be \u003Cem\u003Econfig\u003C\u002Fem\u003Eured to use \u003Cdiv\u003E, \u003Cbr\u003E or \u003Cp\u003E tags when you press enter. In either mode \u003Cbr\u003E tags can be created by using shift+enter.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持代码缩进和小写字母\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor displays nicely indented code in the HTML mode and the generating HTML tags and Attributes are in lower case. This is very convenient and important for the advanced users. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持全屏编辑 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EIt does not open a new window, instead it will resize to fit the browser screen. Edit in full screen mode, maximizing your available space. \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 没有打开较慢的Java或ActiveX组件\u003Cbr\u002F\u003E\u003Cbr\u002F\u003E100% DHTML, JavaScript \u003Cem\u003EASP.Net\u003C\u002Fem\u003E code. There are no slow Java or ActiveX components to worry about and everything is handled in the browser! \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持相对地址和URL自动关联(\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EWith Cute Editor, you have the choice of using either a relative or absolute URL. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 部署简单\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EThe perfect addition to your content management system! Only a couple lines of code , you don't need to be an expert. Allows you to add an online HTML editing functionality that works with standard HTML form.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 可以简单的通过API隐藏按钮和标签 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor allows developers to set the image directory, set the controls width, disable image uploading and deleting, restrict access to the source\u002Fpreview tabs, hide buttons and lists that you don't want your clients to see or access. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持图片的文字环绕 \u003Cbr\u002F\u003E\u003Cbr\u002F\u003ELocate the image you want to wrap text around, and click any justify button in the toolbar. The image will float to the desired direction. Text will be positioned around the image. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持文件\u003Cem\u003E下载\u003C\u002Fem\u003E \u003Cbr\u002F\u003E\u003Cbr\u002F\u003EYou can upload document \u003Cem\u003Efile\u003C\u002Fem\u003Es, create a link from your HTML content to the document \u003Cem\u003Efile\u003C\u002Fem\u003Es (zip \u003Cem\u003Efile\u003C\u002Fem\u003Es, ppt \u003Cem\u003Efile\u003C\u002Fem\u003Es...). \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E CSS型皮肤 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor provides several built in themes that are ready to use. Developers can completely change the appearance of the toolbar and the dialogs by simply modifying the supplied classes and images. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 高级的表格管理\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECreate and modify tables and table cells. Set their border color, alignment, cellspacing and more! Once you've created a table, simply right click inside of it and use the handy popup menu to change its attributes. \u003Ccaption\u003E,\u003Csummary\u003E,\u003Cthead\u003E,\u003Ctfoot\u003E,\u003Cth\u003E tags are supported. \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 图片插入和自动上传\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EBuilt-in thumbnail generator. Thumbnail images are dynamically created; Supports upload new images. Paging - specify how many images. Support auto resize images.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 具有特殊的对话框\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EWith Style builder dialog box you can apply CSS style attributes directly to any HTML elements on your Web page.\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持内容模板 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EThe basic idea behind a Content Management System (CMS) is to separate the management of content from design. Cute Editor allows the site designer to easily create and establish templates to give the site a uniform look. Templates may be modified when desired. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 通过限制html和文字的长度来保护你的数据库 (\u003Cem\u003EDemo\u003C\u002Fem\u003E)\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EIf you tried to insert a record whose text length is greater than allowed by your table, an error will be reported. To prevent this type of error from occurring, developers can use MaxHTMLLength or MaxTextLength in the Cute Editor to limit the length of the user抯 input. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E Apply security to control user access to resources \u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECute Editor allows developers to assign a pre-defined set of permissions by group or individual. This prevents a normal user to access the administration functionality. \u003Cbr\u002F\u003E\u003Cbr\u002F\u003EThe details of permissions are specified by an XML security policy \u003Cem\u003Efile\u003C\u002Fem\u003E. Each level maps to a specific \u003Cem\u003Efile\u003C\u002Fem\u003E. The default mappings: \u003Cbr\u002F\u003E\u003Cbr\u002F\u003Eadmin设置 admin.\u003Cem\u003Econfig\u003C\u002Fem\u003E \u003Cbr\u002F\u003Edefault设置 default.\u003Cem\u003Econfig\u003C\u002Fem\u003E \u003Cbr\u002F\u003Eguest设置 guest.\u003Cem\u003Econfig\u003C\u002Fem\u003E \u003Cbr\u002F\u003EYou can \u003Cem\u003Ecustom\u003C\u002Fem\u003Eize and extend each policy \u003Cem\u003Efile\u003C\u002Fem\u003E by editing the XML security policy \u003Cem\u003Efile\u003C\u002Fem\u003E. You can also create your own policy \u003Cem\u003Efile\u003C\u002Fem\u003Es that define arbitrary permission sets.\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EComparison of the sample security policy \u003Cem\u003Efile\u003C\u002Fem\u003E \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003EPermissions\u002FResource Setting Admin Default Guest \u003Cbr\u002F\u003EAllowUpload \u003Cbr\u002F\u003EAllowDelete \u003Cbr\u002F\u003EAllowCopy \u003Cbr\u002F\u003EAllowMove \u003Cbr\u002F\u003EAllowCreateFolder \u003Cbr\u002F\u003EAllowDeleteFolder \u003Cbr\u002F\u003ERestrictUploadedImageDimension \u003Cbr\u002F\u003EAutoResizeUploadedImages \u003Cbr\u002F\u003EMaxImageWidth 6400 640 640 \u003Cbr\u002F\u003EMaxImageHeight 4800 480 480 \u003Cbr\u002F\u003EMaxImageSize 10000 100 100 \u003Cbr\u002F\u003EMaxMediaSize 10000 100 100 \u003Cbr\u002F\u003EMaxFlashSize 10000 100 100 \u003Cbr\u002F\u003EMaxDocumentSize 10000 100 100 \u003Cbr\u002F\u003EImageGalleryPath ~\u002Fuploads ~\u002Fuploads\u002Fmember ~\u002Fuploads\u002Fguest \u003Cbr\u002F\u003EMediaGalleryPath ~\u002Fuploads ~\u002Fuploads\u002Fmember ~\u002Fuploads\u002Fguest \u003Cbr\u002F\u003EFlashGalleryPath ~\u002Fuploads ~\u002Fuploads\u002Fmember ~\u002Fuploads\u002Fguest \u003Cbr\u002F\u003E\u003Cem\u003EFile\u003C\u002Fem\u003EsGallaryPath ~\u002Fuploads ~\u002Fuploads\u002Fmember ~\u002Fuploads\u002Fguest \u003Cbr\u002F\u003EImageFilters .jpg \u003Cbr\u002F\u003E.jpeg \u003Cbr\u002F\u003E.gif \u003Cbr\u002F\u003E.png .jpg \u003Cbr\u002F\u003E.jpeg \u003Cbr\u002F\u003E.gif \u003Cbr\u002F\u003E .jpg \u003Cbr\u002F\u003E.jpeg \u003Cbr\u002F\u003E.gif \u003Cbr\u002F\u003E \u003Cbr\u002F\u003EMediaFilters .avi \u003Cbr\u002F\u003E.mpg \u003Cbr\u002F\u003E.mpeg \u003Cbr\u002F\u003E.mp3 .avi \u003Cbr\u002F\u003E.mpg \u003Cbr\u002F\u003E.mpeg \u003Cbr\u002F\u003E .avi \u003Cbr\u002F\u003E.mpg \u003Cbr\u002F\u003E.mpeg \u003Cbr\u002F\u003E \u003Cbr\u002F\u003EDocumentFilters .txt, .doc\u003Cbr\u002F\u003E.pdf, .zip\u003Cbr\u002F\u003E.rar, .avi\u003Cbr\u002F\u003E.mpg, .mpeg\u003Cbr\u002F\u003E.mp3, .jpg\u003Cbr\u002F\u003E.jpeg,.gif\u003Cbr\u002F\u003E.png .pdf, .doc\u003Cbr\u002F\u003E .txt, .doc\u003Cbr\u002F\u003E.pdf, .zip\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 在线图片编辑\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EPeople that input content on a website are generally not web designers, so most don't have that design & technical fibre in them. With online image editor, you can now edit image \u003Cem\u003Efile\u003C\u002Fem\u003E with no image editing software to download or install! Easy drag and drop familiar interface. Resize, change dimensions, scale, crop, add text, optimize, rotate, flip, mirror and add watermark. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 控制上传文件夹大小\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EMax Upload Folder size(Including all subfolders and \u003Cem\u003Efile\u003C\u002Fem\u003Es. A must have feature for people who have limited hosting space.) Dynamic display of available free space in the Upload Folder.Limits the size of your upload folder. If the max is reached uploads will be disabled. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 支持图片热点\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EImage maps are pictures with clickable regions also known as \"hotspots.\" When users click on one of the hotspots, they're directed to the page you designate. CuteEditor 5.0 lets you easily create image maps to add fun and excitement to a page\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E \u003Cdiv\u003E 的盒模式\u003Cbr\u002F\u003E\u003Cbr\u002F\u003E\u003Cdiv\u003E boxes offer a much greater ability to control the layout of a page. With CuteEditor, you can put any content between \u003Cdiv\u003E tags and then use CSS to style all sorts of borders, backgrounds, etc. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 通用虚拟键盘\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EVirtual Keyboard does not require changes to language settings of your system and even speeds up the entire text input process for your \u003Cem\u003Ecustom\u003C\u002Fem\u003Eers. It lets your native speaking clients to access your web resources from any location in the world without changing national keyboard layouts and fonts on their machines. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 把图片存到数据库\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EWith CuteEditor you can easily use a Sql Server database or access database as the \u003Cem\u003Efile\u003C\u002Fem\u003E storage. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E RTF和HTML之间互相转换\u003Cbr\u002F\u003E\u003Cbr\u002F\u003EWith CuteEditor you can easily convert an HTML document into an RTF \u003Cem\u003Efile\u003C\u002Fem\u003E and RTF \u003Cem\u003Efile\u003C\u002Fem\u003E into HTML or XHTML document. \u003Cbr\u002F\u003E \u003Cbr\u002F\u003E 生成PDF文件\u003Cbr\u002F\u003E\u003Cbr\u002F\u003ECuteEditor also allows you dynamically create Adobe PDF documents from \u003Cem\u003EASP.NET\u003C\u002Fem\u003E.\u003Cbr\u002F\u003E cuteEditor6.0多语言版(集成lic文件) \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E目前功能强大,最好的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E编辑器之一 \u003Cbr\u002F\u003E除了一般html编辑器具有的功能外,还有word过滤、图片在线处理、加水印等实用功能 \u003Cbr\u002F\u003E使用关键步骤: \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E1、引用bin下的cuteEditor文件 \u003Cbr\u002F\u003E2、在aspx页面顶部中添加引用 \u003Cbr\u002F\u003E3、在aspx页面中加入代码 \u003Cbr\u002F\u003E4、最后可以在.cs文件中通过来读取Editor1.Text的值来进行任意的扩展和控制了 \u003Cbr\u002F\u003E具体配置可参照default.aspx和default.aspx.cs \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E关于cuteEditor6.0的特征及体验请浏览cuteEditor.cn,系统集成了lic授权文件,仅供体验测试使用,请不要用于任何商业用途! \u003Cbr\u002F\u003E\u003Cbr\u002F\u003E \u003Cbr\u002F\u003E","createTime":"2007-06-19 11:25:19","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-196338-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-196338-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Ffanshuzone\u002F196338\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-196338-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Ffanshuzone\u002F196338\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-196338-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flingwanqiu\u002F9508945","title":"ICS delphixe10源码版","desc":"ICS - Internet Component Suite - V8 - Delphi 7 to RAD Studio 10 Seattle\n=======================================================================\n(Aka FPIETTE's Components)\n\n\nRevised: March 3, 2016\nhttp:\u002F\u002Fwww.overbyte.be\u002F\nhttp:\u002F\u002Fwiki.overbyte.be\u002F\n\nTable of content:\n-----------------\n\n- Legal issues\n- Donate\n- Register\n- Contributions\n- Latest Versions\n- Version Control repository\n- Installation\n- Available VCL Components\n- Sample applications\n- About SSL\n- Support\n- Release notes\n- Midware\n- Known problems\n- Special thanks\n\n\nLegal issues:\n-------------\n Copyright (C) 1997-2016 by Fran鏾is PIETTE\n Rue de Grady 24, 4053 Embourg, Belgium\n \n\n SSL implementation includes code written by Arno Garrels,\n Berlin, Germany, contact: \n\n ICS is freeware.\n\n This software is provided 'as-is', without any express or\n implied warranty. In no event will the author be held liable\n for any damages arising from the use of this software.\n\n Permission is granted to anyone to use this software for any\n purpose, including commercial applications, and to alter it\n and redistribute it freely, subject to the following\n restrictions:\n\n 1. The origin of this software must not be misrepresented,\n you must not claim that you wrote the original software.\n If you use this software in a product, an acknowledgment\n in the product documentation would be appreciated but is\n not required.\n\n 2. Altered source versions must be plainly marked as such, and\n must not be misrepresented as being the original software.\n\n 3. This notice may not be removed or altered from any source\n distribution.\n\n 4. You must register this software by sending a picture postcard\n to the author. Use a nice stamp and mention your name, street\n address, EMail address and any comment you like to say.\n\n 5. As this code make use of OpenSSL, your rights are restricted\n by OpenSSL license as soon as you use any SSL feature.\n See http:\u002F\u002Fwww.openssl.org for details.\n\n\n\nDonate\n------\n\nICS is freeware. You can use it without paying anything except the registration\npostcard (see \"register\" below). But of course donations are welcome. You can\nsend cash (Euro currency or US Dollars) in an envelop to my street address or\nbuy a gift certificate at Amazon in the UK. I will then use it to buy books.\nHere is the direct URL at Amazon UK (nearest to my home, please don't use another):\nhttp:\u002F\u002Fwww.amazon.co.uk\u002Fexec\u002Fobidos\u002Fgc-email-order1\u002Fref=g_gc_email\u002F202-6198323-6681414\nFor more generous amount, contact me by email.\n\n\nRegister\n--------\n\nICS is freeware. If you use the components, you must register by sending a\npicture postcard showing the area you live in and some beautiful stamps for\nmy kids who are stamp collectors. Do not use an envelop, I collect USED\npostcards sent to me. Write on the postcard that it is your ICS registration.\n\nAddress your card to: Francois PIETTE, rue de Grady 24, 4053 Embourg, Belgium.\nDon't forget to mention your name, street address, EMail and web site.\n\n\nContributions:\n--------------\n\nICS has been designed by Fran鏾is PIETTE but many other peoples are working on the\ncomponents and sample programs. The history of changes in each source \u003Cem\u003Efile\u003C\u002Fem\u003E list\nall developers having contributed (When no name is given, the change is by F. Piette).\nI can't list all contributors here but I want to specially thanks two specially active\ncontributors:\n - Arno Garrels \n - Angus Robertson \n\n\nLatest versions:\n---------------\n\nThe latest versions of ICS can be downloaded from the ICS Wiki web site:\n\nhttp:\u002F\u002Fwiki.overbyte.be\u002Fwiki\u002Findex.php\u002FICS_Download\n\nICS V5 and V6 are archive releases no longer updated, last supported release was 2007.\n\nICS V7 is a stable release that may still be updated for major bugs, but not for new\nreleases of Delphi, latest it supported was XE3.\n\nICS V8 is the current development release which is held in a public Version Control\nrepository that is zipped each night for easy download. The download page above\nalso includes the OpenSSL binaries needed to support SSL. ICS V8 supports Delphi 64-bit\nand Mac OS-X projects. Note that latest C++ Builder version supported is XE3 (lack of\nspare time, sorry).\n\nICS V9 is in early development and is planned to support Android. There are no current\nplans for ICS for iOS.\n\n\nVersion Control repository:\n---------------------------\n\nsvn:\u002F\u002Fsvn.overbyte.be\u002Fics or http:\u002F\u002Fsvn.overbyte.be:8443\u002Fsvn\u002Fics\n(Usercode = ics, password = ics)\n\n\nInstallation:\n-------------\n\nICS V8 has been designed for Embarcadero Delphi 2009 and up, and C++ Builder\n2009 and up, but is fully compatible with Borland Delphi 7 and CodeGear 2006 and\n2007. Embarcadero RAD Studio includes Delphi and C++ Builder.\n\nhttp:\u002F\u002Fwww.embarcadero.com\u002F\n\nWith Delphi XE2 and later, VCL 64-bit Windows targets are supported for Delphi only.\nCurrently FireMonkey is partly supported for Delphi only (there are still a few\nnon-ported components). ICS for Mac OSX is currently experimental.\n\nThe zip \u003Cem\u003Efile\u003C\u002Fem\u003E has sub-directories in it. You must use the WinZip \"Use folder names\"\noption to restore this directory tree or you will have problems because the \u003Cem\u003Efile\u003C\u002Fem\u003Es\nwould not be in their proper subdirectories.\n\nPlease note most of these directories are differently named to ICS V7 and earlier,\nto ease support of multiple versions of Delphi and platforms, and to ease location\nof similar sample projects. Please don't install V8 over an existing V7\ninstallation, it will be a mess of old and new.\n\nThis is the new V8 sub-directory layout:\n\n.\\ Info directory\n.\\Install Component packages project groups for all versions\n.\\Packages (was Delphi\\Vc32) Delphi (7 and up) and C++Builder (2006 and up) packages projects\n.\\Source (was Delphi\\Vc32) ICS Delphi source code built into packages\n.\\Source\\Include (was Delphi\\Vc32) .inc \u003Cem\u003Efile\u003C\u002Fem\u003Es (including OverbyteIcsDefs.inc)\n.\\Source\\Extras (was Delphi\\Vc32) Extra source code not built into packages\n.\\Source\\zobj125 (was Delphi\\Vc32) ZLIB C OBJ include \u003Cem\u003Efile\u003C\u002Fem\u003Es\n\n.\\Lib Unit output directories for all package builds, subdirectories\n | for 2007+ will be created on building the packages\n \\$(\u003Cem\u003EConfig\u003C\u002Fem\u003E) Release \u002F Debug\n |\n \\$(Platform) Win32 \u002F Win64 \u002F OSX32\n |\n \\ D7..XE8, 10 Seattle includes .dcu and .dfm \u003Cem\u003Efile\u003C\u002Fem\u003Es for Delphi\n and .obj and .hpp \u003Cem\u003Efile\u003C\u002Fem\u003Es for C++ Builder\n\n.\\Samples Delphi Win32\u002FWin64 common source for all \u003Cem\u003Edemo\u003C\u002Fem\u003Es\n.\\Samples\\delphi\\Broswer\u003Cem\u003EDemo\u003C\u002Fem\u003E Delphi Win32\u002FWin64 Web Browser sample application (all Delphi versions)\n.\\Samples\\delphi\\Broswer\u003Cem\u003EDemo\u003C\u002Fem\u003E\\Resources Resource \u003Cem\u003Efile\u003C\u002Fem\u003E, web pages and movie linked into browser \u003Cem\u003Edemo\u003C\u002Fem\u003E\n.\\Samples\\delphi\\Ftp\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 FTP sample applications (all Delphi versions)\n.\\Samples\\delphi\\MailNews\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 SMTP, POP3, NNTP sample applications (all Delphi versions)\n.\\Samples\\delphi\\Misc\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 Miscellaneous applications (all Delphi versions)\n.\\Samples\\delphi\\Other\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 DNS, Ping, SNMP, Syslog sample applications (all Delphi versions)\n.\\Samples\\delphi\\Platform\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi FireMonkey and cross-platform samples (Delphi XE2+)\n.\\Samples\\delphi\\Socket\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 Socket sample applications (all Delphi versions)\n.\\Samples\\delphi\\sslinternet Delphi Win32\u002FWin64 SSL-enabled sample applications (all Delphi versions)\n.\\Samples\\delphi\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es Delphi Win32\u002FWin64 HTTP sample applications (all Delphi versions)\n.\\Samples\\delphi\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\WebAppServerData Directory for WebAppServ \u003Cem\u003Edemo\u003C\u002Fem\u003E data \u003Cem\u003Efile\u003C\u002Fem\u003Es\n.\\Samples\\delphi\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\WebServData Directory for WebServ \u003Cem\u003Edemo\u003C\u002Fem\u003E data \u003Cem\u003Efile\u003C\u002Fem\u003Es\n.\\Samples\\cpp\\internet C++Builder sample applications\n.\\Samples\\cpp\\internet\\cb2006 C++Builder 2006 projects\n.\\Samples\\cpp\\internet\\cb2007 C++Builder 2007 projects\n.\\Samples\\cpp\\internet\\cb2009 C++Builder 2009 projects\n.\\Samples\\cpp\\internet\\cb2010 C++Builder 2010 projects\n.\\Samples\\cpp\\internet\\cbXE C++Builder XE projects\n.\\Samples\\cpp\\internet\\cbXE2 C++Builder XE2 projects\n\n\nUPGRADING and REINSTALLING\n\nUninstall an existing ICS package (Menu | Component | Install Packages, select\nthe component package and click Remove).\n\nRename the old ICS directory and unzip to a new or empty directory, remove the\nold path from the library path and add either the new .\\Source directory to the library\npath under Tools | Options |... or the appropriate .\\Lib subdirectory according to\nversion, ie .\\Lib\\Debug\\Win32\\D2007 for Delphi 2007.\n\nThe latter has the advantage that the ICS source code won't be recompiled whenever\nyour project is build. Also under Tools | Options |... add the new .\\Source directory\nto the Browsing path.\n\n\nAll DELPHI and C++ BUILDER VERSIONS\u002FWIN32\n\nAlways upgrade your compiler with the latest update available from Embarcadero.\nAlways update your system with http:\u002F\u002Fwindowsupdate.microsoft.com\n\nSSL or not SSL?\n\nBy default the SSL code is compiled into the run-time package and additional SSL-\nenabled components are installed. In order to not compile the SSL code into the\nrun-time package and to not install the SSL-Enabled components you need to remove\nthe conditional define USE_SSL from both the run-time and design-time package.\n\nHowever if you do not build your applications with run-time packages it is\nrecommended to build the packages with default settings. The SSL code will the\nbe compiled into your applications depending on whether the conditional define\nUSE_SSL is set in the project options or not (this requires having the .\\Source\ndirectory in either in the library path or in projects Search path).\n\nActual use of SSL in your applications also requires the OpenSSL \u003Cem\u003Efile\u003C\u002Fem\u003Es \nLIBEAY32.DLL and SSLEAY32.DLL being available somewhere in the path. Note \ndifferent DLLs are needed for Win32 and Win64 applications. The ICS \ndistribution includes the latest Win32 OpenSSL \u003Cem\u003Efile\u003C\u002Fem\u003Es in the .\\OpenSSL-Win32 \ndirectory and the two main DLLs duplicated in .\\Samples\\delphi\\sslinternet. \n\nOther OpenSSL \u003Cem\u003Efile\u003C\u002Fem\u003Es, including older and Win64, may be downloaded from:\n\nhttp:\u002F\u002Fwiki.overbyte.be\u002Fwiki\u002Findex.php\u002FICS_Download\n\n\nINSTALLATION USING THE INSTALL PROJECT GROUPS\n\nFor each Delphi and C++ Builder version one project group is provided in directory\n.\\Install:\n\nDelphi 7 : D7Install.bpg\nDelphi 2006 : D2006Install.bdsgroup\nDelphi 2007 : D2007Install.groupproj\nDelphi 2009 : D2009Install.groupproj\nDelphi 2010 : D2010Install.groupproj\nDelphi XE : DXeInstall.groupproj\nDelphi XE2 : DXe2Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE2 : DXe2InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE3 : DXe3Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE3 : DXe3InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE4 : DXe4Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE4 : DXe4InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE5 : DXe5Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE5 : DXe5InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE6 : DXe6Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE6 : DXe6InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE7 : DXe7Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE7 : DXe7InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi XE8 : DXe8Install.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi XE8 : DXe8InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nDelphi 10 Seattle : D10SInstall.groupproj \u002F\u002F VCL only, no FireMonkey components\nDelphi 10 Seattle : D10SInstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nC++ Builder 2006 : CB2006Install.bdsgroup\nC++ Builder 2007 : CB2007Install.groupproj\nC++ Builder 2009 : CB2009Install.groupproj\nC++ Builder 2010 : CB2010Install.groupproj\nC++ Builder XE : CBXeInstall.groupproj\nC++ Builder XE2 : CBXe2Install.groupproj \u002F\u002F VCL only no FireMonkey components\nC++ Builder XE2 : CBXe2InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\nC++ Builder XE3 : CBXe3InstallVclFmx.groupproj \u002F\u002F Both VCL and FireMonkey components\n\n1 - Do a \u003Cem\u003EFile\u003C\u002Fem\u003E\u002FOpen Project, navigate to the Install directory, select the correct\n\u003Cem\u003Efile\u003C\u002Fem\u003E and open it. The project manager view should now display two package\nprojects, one run-time and one design-time package. The run-time package name\ncontains the \"Run\" suffix. The design-time package name contains the \"Design\"\nsuffix.\n\n2 - Select and Build the run-time package (do not install).\n\n3 - Select and Install the design-time package.\n\nAfter a few seconds, you should have a dialog box telling you the package has\nbeen installed with a bunch of new components registered in the Tool Palette\nunder \"Overbyte ICS\" and \"Overbyte ICS SSL\". Then do a \"Save All\" and a \"Close All\".\n\n4 - One package is installed, called 'Overbyte ICS Design-Time Package for Delphi xxx'.\n\n5 - Various directories under .\\Samples\\delphi\\ include samples that illustrate use\nof all the ICS components, see later.\n\n\nFIREMONKEY CROSS PLATFORM PACKAGES:\n\n1 - For XE2 and later, DXe?Install (where ? is the version) installs VCL components\nonly, while DXe?InstallVclFmx also installs FireMonkey cross platform components\n(three run time packages). In order to use this feature first uninstall the old\ndesign-time package.\n\n2 = Build all three run-time packages for all available platforms (32-bit\nand 64-bit Windows and Mac OS X) in the order they are listed in project manager.\n\n3 - Next build and install the three design-time packages in the order they are\nlisted in project manager.\n\n4 - Three packages are installed, called:\n 'Overbyte ICS Common Design-Time Package for Delphi xxx'\n 'Overbyte ICS FMX Design-Time Package for Delphi xxx'\n 'Overbyte ICS VCL Design-Time Package for Delphi xxx'\n\nNote that the new packaging is still beta\u002Falpha, both package names and included\nunits might change in a future beta drop. The old VCL packages are still there\nhowever they do no longer support FireMonkey and of course only one set of\npackages can be installed in the IDE at the same time, if you want both VCL\nand FMX install DXe2InstallVclFmx.groupproj only. Currently the XE2 package\ncache is buggy and should be disabled by adding the -nocache parameter.\n\n5 - The .\\Samples\\delphi\\Platform\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\ folder contains FireMonkey sample\nprojects that may all be built with FireMonkey for Mac OS X (and Windows).\n\n\nALTERNATE INSTALLATION USING THE PACKAGE PROJECT \u003Cem\u003EFILE\u003C\u002Fem\u003ES:\n\nFor each Delphi and C++ Builder version two package project \u003Cem\u003Efile\u003C\u002Fem\u003Es exist in the\n.\\Packages directory. One run-time and one design-time package project \u003Cem\u003Efile\u003C\u002Fem\u003E.\nThe run-time \u003Cem\u003Efile\u003C\u002Fem\u003E name contains the \"Run\" suffix. The design-time \u003Cem\u003Efile\u003C\u002Fem\u003E name\ncontains the \"Design\" suffix.\n\nPACKAGE PROJECT \u003Cem\u003EFILE\u003C\u002Fem\u003E NAMES - VCL:\nDelphi 7 : OverbyteIcsD7Run.dpk, OverbyteIcsD7Design.dpk\nDelphi 2006 : OverbyteIcsD2006Run.bdsproj, OverbyteIcsD2006Design.bdsproj\nDelphi 2007 : OverbyteIcsD2007Run.dproj, OverbyteIcsD2007Design.dproj\nDelphi 2009 : OverbyteIcsD2009Run.dproj, OverbyteIcsD2009Design.dproj\nDelphi 2010 : OverbyteIcsD2010Run.dproj, OverbyteIcsD2010Design.dproj\nDelphi XE : OverbyteIcsDXeRun.dproj, OverbyteIcsDXeDesign.dproj\nDelphi XE2 : OverbyteIcsDXe2Run.dproj, OverbyteIcsDXe2Design.dproj\nDelphi XE3 : OverbyteIcsDXe3Run.dproj, OverbyteIcsDXe3Design.dproj\nDelphi XE4 : OverbyteIcsDXe4Run.dproj, OverbyteIcsDXe4Design.dproj\nDelphi XE5 : OverbyteIcsDXe5Run.dproj, OverbyteIcsDXe5Design.dproj\nDelphi XE6 : OverbyteIcsDXe6Run.dproj, OverbyteIcsDXe6Design.dproj\nDelphi XE7 : OverbyteIcsDXe7Run.dproj, OverbyteIcsDXe7Design.dproj\nDelphi XE8 : OverbyteIcsDXe8Run.dproj, OverbyteIcsDXe8Design.dproj\nDelphi 10 Seattle : OverbyteIcsD10SRun.dproj, OverbyteIcsD10SDesign.dproj\nC++ Builder 2006 : OverbyteIcsCB2006Run.bdsproj, OverbyteIcsCB2006Design.bdsproj\nC++ Builder 2007 : OverbyteIcsCB2007Run.cbproj, OverbyteIcsCB2007Design.cbproj\nC++ Builder 2009 : OverbyteIcsCB2009Run.cbproj, OverbyteIcsCB2009Design.cbproj\nC++ Builder 2010 : OverbyteIcsCB2010Run.cbproj, OverbyteIcsCB2010Design.cbproj\nC++ Builder XE : OverbyteIcsCBXeRun.cbproj, OverbyteIcsCBXeDesign.cbproj\nC++ Builder XE2 : OverbyteIcsCBXe2Run.cbproj, OverbyteIcsCBXe2Design.cbproj\nC++ Builder XE3 : OverbyteIcsCBXe3Run.cbproj, OverbyteIcsCBXe3Design.cbproj\n\nPACKAGE PROJECT \u003Cem\u003EFILE\u003C\u002Fem\u003E NAMES - FireMonkey and VCL:\nDelphi XE2 FMX\u002FVCL : IcsCommonDXe2Run.dproj, IcsCommonDXe2Design.dproj\nDelphi XE2 VCL : IcsVclDXe2Run.dproj, IcsVclDXe2Design.dproj\nDelphi XE2 FMX : IcsFmxDXe2Run.dproj, IcsFmxDXe2Design.dproj\nDelphi XE3 FMX\u002FVCL : IcsCommonDXe3Run.dproj, IcsCommonDXe3Design.dproj\nDelphi XE3 VCL : IcsVclDXe3Run.dproj, IcsVclDXe3Design.dproj\nDelphi XE3 FMX : IcsFmxDXe3Run.dproj, IcsFmxDXe3Design.dproj\nDelphi XE4 FMX\u002FVCL : IcsCommonDXe4Run.dproj, IcsCommonDXe4Design.dproj\nDelphi XE4 VCL : IcsVclDXe4Run.dproj, IcsVclDXe4Design.dproj\nDelphi XE4 FMX : IcsFmxDXe4Run.dproj, IcsFmxDXe4Design.dproj\nDelphi XE5 FMX\u002FVCL : IcsCommonDXe5Run.dproj, IcsCommonDXe5Design.dproj\nDelphi XE5 VCL : IcsVclDXe5Run.dproj, IcsVclDXe5Design.dproj\nDelphi XE5 FMX : IcsFmxDXe5Run.dproj, IcsFmxDXe5Design.dproj\nDelphi XE6 FMX\u002FVCL : IcsCommonDXe6Run.dproj, IcsCommonDXe6Design.dproj\nDelphi XE6 VCL : IcsVclDXe6Run.dproj, IcsVclDXe6Design.dproj\nDelphi XE6 FMX : IcsFmxDXe6Run.dproj, IcsFmxDXe6Design.dproj\nDelphi XE7 FMX\u002FVCL : IcsCommonDXe7Run.dproj, IcsCommonDXe7Design.dproj\nDelphi XE7 VCL : IcsVclDXe7Run.dproj, IcsVclDXe7Design.dproj\nDelphi XE7 FMX : IcsFmxDXe7Run.dproj, IcsFmxDXe7Design.dproj\nDelphi XE8 FMX\u002FVCL : IcsCommonDXe8Run.dproj, IcsCommonDXe8Design.dproj\nDelphi XE8 VCL : IcsVclDXe8Run.dproj, IcsVclDXe8Design.dproj\nDelphi XE8 FMX : IcsFmxDXe8Run.dproj, IcsFmxDXe8Design.dproj\nDelphi 10 Seattle FMX\u002FVCL: IcsCommonD10SRun.dproj, IcsCommonD10SDesign.dproj\nDelphi 10 Seattle VCL : IcsVclD10SRun.dproj, IcsVclD10SDesign.dproj\nDelphi 10 Seattle FMX : IcsFmxD10SRun.dproj, IcsFmxD10SDesign.dproj\nC++ Builder XE2 FMX\u002FVCL : IcsCommonCBXe2Run.dproj, IcsCommonDXe2Design.dproj\nC++ Builder XE2 VCL : IcsVclCBXe2Run.dproj, IcsVclCBXe2Design.dproj\nC++ Builder XE2 FMX : IcsFmxCBXe2Run.dproj, IcsFmxCBXe2Design.dproj\nC++ Builder XE3 FMX\u002FVCL : IcsCommonCBXe3Run.dproj, IcsCommonDXe3Design.dproj\nC++ Builder XE3 VCL : IcsVclCBXe3Run.dproj, IcsVclCBXe3Design.dproj\nC++ Builder XE3 FMX : IcsFmxCBXe3Run.dproj, IcsFmxCBXe3Design.dproj\n\n\n1 - Open and Build the run-time package project (do not install!).\n\n2 - Open and Install the design-time package project.\n(Do a \u003Cem\u003EFile\u003C\u002Fem\u003E\u002FOpen Project, browse to the .\\Packages directory. Select the correct \u003Cem\u003Efile\u003C\u002Fem\u003E\nand open it. Then in the project manager view, right-click on the package,\nthen click on either the Build or Install button.)\n\n3 - For Delphi XE2 and later, a 64-bit run-time package can be built by changing\nthe package target platform to 64-bit Windows. This has the same name as the\n32-bit package, so a different package output directory needs to be specified in\nTools \u002F Options \u002F Delphi Options for 64-bit Windows.\n\nAfter a few seconds, you should have a dialog box telling you the package has\nbeen installed with a bunch of new components registered in the Tool Palette\nunder \"Overbyte ICS\" and \"Overbyte ICS SSL\". Then do a \"Save All\" and a \"Close All\".\n\n\nDELPHI 2006\u002FWIN32, 2007\u002FWIN32, 2009\u002FWIN32, 2010\u002FWIN32, XE\u002FWIN32:\n\nHaving installed the package, verify that the appropriate Win32 Library Path\n(Tools \u002F Options \u002F Delphi Options \u002F Library - Win32 \u002F Library Path) has been added,\n.\\Lib subdirectory according to version, ie .\\Lib\\Debug\\Win32\\D2007 for Delphi 2007.\nIf not, add it manually. It is not mandatory to add .\\Lib to the global Delphi path,\nbut it will be much easier for you because otherwise you'll have to add it to each\nproject.\n\nDELPHI XE2\u002FWIN32, XE3\u002FWIN32, XE4\u002FWIN32, XE5\u002FWIN32, XE6\u002FWIN32, XE7\u002FWIN32, XE8\u002FWIN32,\n10 Seattle\u002FWIN32, XE2\u002FWIN64, XE3\u002FWIN64, XE4\u002FWIN64, XE5\u002FWIN64, XE6\u002FWIN64, XE7\u002FWIN64,\nXE8\u002FWIN64, 10 Seattle\u002FWIN64:\n\nSimilar to above, but the Library path is specified separately for 32-bit and 64-bit\nWindows Platforms.\n\nDELPHI 7: Add VC32 directory path to your library path (Tools menu \u002F Environment\nOptions \u002F Library \u002F Library Path. Add .\\Lib\\Debug\\Win32\\D7 path at the end of the\nexisting path).\n\n\nSAMPLE DELPHI PROJECTS\n\nOnce the package is installed, you may open the sample projects. The samples are split\ninto several directories according to protocols, most with a project group that can be\nopened in all versions of Delphi.\n\n.\\Samples\\delphi\\Broswer\u003Cem\u003EDemo\u003C\u002Fem\u003E\n.\\Samples\\delphi\\Ftp\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Ftp\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\MailNews\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\MailNews\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\Misc\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Misc\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\Other\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Other\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\Platform\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\XSamples.groupproj\n.\\Samples\\delphi\\Socket\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Socket\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\sslinternet\\Ssl\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n.\\Samples\\delphi\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg\n\nFull details of the sample projects are shown later in this document.\n\nYou might get some dialog box telling you that resource \u003Cem\u003Efile\u003C\u002Fem\u003Es are missing (they may not\nhave been included in the zip \u003Cem\u003Efile\u003C\u002Fem\u003E to save space) and are recreated by Delphi. It is OK.\nAny other error message is a problem you should fix. After all resource \u003Cem\u003Efile\u003C\u002Fem\u003Es have\nbeen recreated, you should see in the project manager a group of projects.\n\nTo compile all samples in the group at once, do Project \u002F Build all projects. This may\ntake a few minutes.\n\nNote 1: Delphi may run out of memory if you ask to compile all projects at\nonce. If you have not enough RAM, then compile each project individually.\n\nNote 2: Delphi has warnings which triggers a lot of messages for 100% OK\ncode. You can turn those warnings off in the project\u002F options \u002F Compiler messages\nand deselecting: \"Deprecated symbol\", \"Platform symbol\", \"unsafe type\", \"unsafe code\",\n\"unsafe typecast\". Those are intended for .NET and Linux portability. You can\nsafely ignore them if you run windows. For you facility, I included a utility\nSetProjectOptions (source code, you must compile it) in the internet directory.\nThis utility will update project options to disable the warnings.\n\nOnce the components are all installed, you may open the sample projects\neach one after the other and compile them. For each project, do \u003Cem\u003Efile\u003C\u002Fem\u003E\u002Fopen\nand select the dpr \u003Cem\u003Efile\u003C\u002Fem\u003E in the internet directory. Then Project\u002FBuild All.\n\n\nC++ BUILDER 2006, 2007, 2009, 2010, XE, XE2, XE3:\n\nFollow the installation procedure described for Delphi 2006. Just change\nthe project group and package name: use CB2006, CBXe, etc, see above.\nYou can't have Delphi 2006 and CBuilder 2006 packages installed at the\nsame time in the IDE. So when switching from one to the other, be sure to\nremove the one you don't need.\n\nBuilding the FireMonkey CBXE2InstallVclFmx C++ packages for OSX may trigger an\nILINK32 error, this is a bug in C++ Builder reported as QC #103668 the Win32\npackages should build without errors.\n\nOnce the components are all installed, you may open the sample projects\neach one after the other and compile them. For each project, do \u003Cem\u003Efile\u003C\u002Fem\u003E\u002Fopen\nand select the dpr \u003Cem\u003Efile\u003C\u002Fem\u003E in the internet directory. Then Project\u002FBuild All.\nProjects are located in SAMPLES\\CPP\\INTERNET\\CB2006\\ (or CB2006, CBXE, etc)\nwith a project group in each directory, OverbyteIcsCB2006Sam.bdsgroup,\nOverbyteIcsCBXe2Sam.groupproj, etc. It is likely that for each project,\nC++ Builder complains about a missing .res \u003Cem\u003Efile\u003C\u002Fem\u003E. This is not a problem,\nC++ Builder will recreate it as needed. They have not been included to save\nspace in the zip \u003Cem\u003Efile\u003C\u002Fem\u003E.\n\nOnce the components are all installed, you may open the sample projects\neach one after the other and compile them. For each project, do \u003Cem\u003Efile\u003C\u002Fem\u003E\u002Fopen\nand select the dpr \u003Cem\u003Efile\u003C\u002Fem\u003E in the internet directory. Then Project\u002FBuild All.\n\nNOTES:\n- You may have an error message, using Delphi or C++ Builder complaining about\nFont.Charset, OldCreateOrder and other properties. Those are new properties\nin newer Delphi or C++ Builder versions, newer than the version you use.\nYou can safely ignore those errors because those properties are not\nused by the components nor sample programs. You may encounter this\nerror at run time. To avoid it, you must open each form at design time\nand ignore the error. Then recompile. If you don't ignore the error\nat design time, you'll have it at runtime !\n\n- If you have Delphi or C++ Builder complaining about a \u003Cem\u003Efile\u003C\u002Fem\u003E not found, add\n.\\source directory to your library path.\n\n- If you are using C++ Builder you may encounter an error at link time\nsuch as \"Unable to open \u003Cem\u003Efile\u003C\u002Fem\u003E MWBCB30.LIB\" (or other libs). This is a bug\nin C++ Builder. To solve it, you can edit project option \u003Cem\u003Efile\u003C\u002Fem\u003E (right click in\nproject manager) and remove any reference to the missing libraries.\n\n- Don't forget that the C++Builder components are located in .\\delphi\\vc32\nwhich is object pascal source code (not a problem for C++Builder, just\nindicate that the *.pas \u003Cem\u003Efile\u003C\u002Fem\u003Es are displayed when installing). C++Builder\nwill create the *.hpp \u003Cem\u003Efile\u003C\u002Fem\u003Es. There are some on-line help \u003Cem\u003Efile\u003C\u002Fem\u003Es in the VC32\ndirectory.\n\n\nAvailable VCL Components\n------------------------\n\n- The following is a list of the \u003Cem\u003Efile\u003C\u002Fem\u003Es that should be installed in order to\nproperly add all of the available components in this collection:\n\n\u003E OverbyteIcsCharsetComboBox.pas Provides easy MIME charset selection\n\u003E OverbyteIcsDnsQuery DNS lookup component - useful for getting MX records\n\u003E OverbyteIcsDprUpdFix.pas IDE plugin for Delphi 2009 and 2010 to update old projects\n\u003E OverbyteIcsEmulVT.pas ANSI terminal emulation in a control\n\u003E OverbyteIcsFingCli.pas FINGER client protocol - Find information about user\n\u003E OverbyteIcsFtpCli.pas FTP client protocol - \u003Cem\u003Efile\u003C\u002Fem\u003E transfer\n\u003E OverbyteIcsFtpSrv.pas FTP server protocol - \u003Cem\u003Efile\u003C\u002Fem\u003E transfer\n\u003E OverbyteIcsFtpSrvT.pas FTP server protocol - helpers\n\u003E OverbyteIcsHttpAppServer.pas HTTP server protocol - used to build advanced web servers\n\u003E OverbyteIcsHttpProt.pas HTTP client protocol - used by the web\n\u003E OverbyteIcsHttpSrv.pas HTTP server protocol - used to build web servers\n\u003E OverbyteIcsLogger.pas A component to log information\n\u003E OverbyteIcsMimeDec.pas MIME component - decode \u003Cem\u003Efile\u003C\u002Fem\u003E attach, use with POP3\n\u003E OverbyteIcsMultiProgressBar.pas A segmented progress bar\n\u003E OverbyteIcsMultipartFtpDownloader.pas\n FTP client protocol - download one \u003Cem\u003Efile\u003C\u002Fem\u003E using simultaneous connections to speedup download\n\u003E OverbyteIcsMultipartHttpDownloader.pas\n HTTP client protocol - download one \u003Cem\u003Efile\u003C\u002Fem\u003E using simultaneous connections to speedup download\n\u003E OverbyteIcsNntpCli.pas NNTP client protocol - send and receive newsgroups messages\n\u003E OverbyteIcsPing.pas ICMP echo protocol - ping a host\n\u003E OverbyteIcsPop3Prot.pas POP3 client protocol - get mail from mail server\n\u003E OverbyteIcsReg.pas Register design components\n\u003E OverbyteIcsSmtpProt.pas SMTP client protocol - send mail to server\n\u003E OverbyteIcsSmtpSrv.pas SMTP server protocol - receive mail from client\n\u003E OverbyteIcsSnmpCli.pas SNMP client protocol - network management\n\u003E OverbyteIcsSnmpMsgs.pas SNMP client protocol - message helper\n\u003E OverbyteIcsSysLogClient.pas Syslog Client Protocol - receive syslog messages\n\u003E OverbyteIcsSysLogDefs.pas Syslog Protocol - helpers\n\u003E OverbyteIcsSysLogServer.pas Syslog Server Protocol - send syslog messages\n\u003E OverbyteIcsTnCnx.pas TELNET client protocol - terminal emulation protocol\n\u003E OverbyteIcsTnEmulVT.pas TELNET and ANSI terminal emulation combined\n\u003E OverbyteIcsTnOptFrm.pas TELNET Client \u003Cem\u003Econfig\u003C\u002Fem\u003Euration form\n\u003E OverbyteIcsTnScript.pas TELNET client protocol - with automation\n\u003E OverbyteIcsWSocket.pas Winsock component - TCP, UDP, DNS,...\n\u003E OverbyteIcsWSocketE.pas Register procedure and property editor for TWSocket\n\u003E OverbyteIcsWSocketS.pas Winsock component for building servers\n\u003E OverbyteIcsWSocketTS.pas Winsock component for building multithreaded servers\n\n- The following list support and utilities units:\n\u003E OverbyteIcsAsn1Utils.pas ASN1 utilities (for TSnmpClient component)\n\u003E OverbyteIcsAvlTrees.pas Implements a fast cache-like data storage\n\u003E OverbyteIcsCharsetUtils.pas MIME-charset functions\n\u003E OverbyteIcsCookies.pas Client Cookie Handling\n\u003E OverbyteIcsCRC.pas 32 bit CRC computation\n\u003E OverbyteIcsCsc.pas character set routines\n\u003E OverbyteIcsDES.pas Implementation of the Data Encryption Standard (DES)\n\u003E OverbyteIcsDigestAuth.pas HTTP Digest Access Authentication\n\u003E OverbyteIcsFormDataDecoder.pas Decode a MIME data block as generated by a HTML form\n\u003E OverbyteIcsHttpCCodZLib.pas Supports GZIP coding for HttpContCod\n\u003E OverbyteIcsHttpContCod.pas HTTP Content Coding support, uses extra units\n\u003E OverbyteIcsIcmp.pas ICMP protocol support, used by the PING component\n\u003E OverbyteIcsIconv.pas Headers for iconv library (LGPL)\n\u003E OverbyteIcsLIBEAY.pas Delphi encapsulation for LIBEAY32.DLL (OpenSSL)\n\u003E OverbyteIcsMD4.pas Implementation of the MD4 Message-Digest Algorithm\n\u003E OverbyteIcsMD5.pas Implementation of the MD5 Message-Digest Algorithm\n\u003E OverbyteIcsMimeUtil.pas Support routines for MIME standard\n\u003E OverbyteIcsMLang.pas A few header translations from MS mlang.h\n\u003E OverbyteIcsNtlmMsgs.pas Client NTLM authentification messages used within HTTP protocol\n\u003E OverbyteIcsNtlmSsp.pas Server NTLM authentification of user credentials using Windows SSPI\n\u003E OverbyteIcsOneTimePw.pas One Time Password support functions, used by FTP\n\u003E OverbyteIcsSHA1.pas Implementation of US Secure Hash Algorithm 1 (SHA1)\n\u003E OverbyteIcsSocketUtils.pas Cross platform socket utilities for ICS\n\u003E OverbyteIcsSSLEAY.pas Delphi encapsulation for SSLEAY32.DLL (OpenSSL)\n\u003E OverbyteIcsSslSessionCache.pas A very fast external SSL-session-cache component\n\u003E OverbyteIcsSslThrdLock.pas Implementation of OpenSsl thread locking (Windows);\n\u003E OverbyteIcsSspi.pas A few header translations from MS sspi.h and security.h\n\u003E OverbyteIcsStreams.pas Fast streams for ICS\n\u003E OverbyteIcsThreadTimer.pas A \u003Cem\u003Ecustom\u003C\u002Fem\u003E timer class using \u003Cem\u003Ecustom\u003C\u002Fem\u003E timer messages from one or more threads\n\u003E OverbyteIcsTicks64.pas GetTickCount64 support for all versions of Windows\n\u003E OverbyteIcsTimeList.pas List of items with expiry times, used for WebSessions\n\u003E OverbyteIcsTypes.pas Common types, mainly for backward compiler compatibility\n\u003E OverbyteIcsURL.pas Support routines for URL handling\n\u003E OverbyteIcsUtils.pas Vast number of common utilities, many supporting Unicode for D7\u002F2007\n\u003E OverbyteIcsWSockBuf.pas FIFO buffers for TWSocket\n\u003E OverbyteIcsWebSession.pas Web session support for THttpAppSrv and MidWare\n\u003E OverbyteIcsWinnls.pas A few header translations for Unicode Normalization in winnls.h\n\u003E OverbyteIcsWinsock.pas Some Winsock initialisations\n\u003E OverbyteIcsWndControl.pas A class that encapsulates a windows message queue and a message map\n\u003E OverbyteIcsZLibDll.pas Zlib support, interface to external zlib.dll functions\n\u003E OverbyteIcsZlibHigh.pas Zlib support, high level interface for compression and decompression\n\u003E OverbyteIcsZLibObj.pas Zlib support, interface to zlib linked C OBJ functions\n\n\nFireMonkey Cross Platform Support:\n----------------------------------\n\nFor Delphi and C++ Builder XE2 and later, FireMonkey Desktop applications are an alternate\nto VCL Forms applications, supporting cross platforms of Windows 32-bit and 64-bit and Mac\nOS X (and perhaps other platforms in future). FireMonkey uses different visual components\nto VCL, while some non-visual components can be used for both VCL and FMX projects, while\nother components need special versions, such as ICS.\n\nEarlier betas of V8 used the conditional define \"FMX\" which is *no longer required in\nproject options. Instead in your existing ICS FireMonkey app. add either \"Ics.Fmx\" to\nthe unit scope names in project options or apply the following changes in the uses clause,\nrename:\n\nOverbyteIcsWndControl -\u003E Ics.Fmx.OverbyteIcsWndControl\nOverbyteIcsWSocket -\u003E Ics.Fmx.OverbyteIcsWSocket\nOverbyteIcsFtpCli -\u003E Ics.Fmx.OverbyteIcsFtpCli\nOverbyteIcsFtpSrv -\u003E Ics.Fmx.OverbyteIcsFtpSrv\nOverbyteIcsHttpProt -\u003E Ics.Fmx.OverbyteIcsHttpProt\nOverbyteIcsWSocketS -\u003E Ics.Fmx.OverbyteIcsWSocketS\nOverbyteIcsSmtpProt -\u003E Ics.Fmx.OverbyteIcsSmtpProt.pas\nOverbyteIcsPop3Prot -\u003E Ics.Fmx.OverbyteIcsPop3Prot.pas\nOverbyteIcsNntpCli -\u003E Ics.Fmx.OverbyteIcsNntpCli.pas\nOverbyteIcsPing -\u003E Ics.Fmx.OverbyteIcsPing.pas\nOverbyteIcsDnsQuery -\u003E Ics.Fmx.OverbyteIcsDnsQuery.pas\nOverbyteIcsFingCli -\u003E Ics.Fmx.OverbyteIcsFingCli.pas\nOverbyteIcsSslSessionCache -\u003E Ics.Fmx.OverbyteIcsSslSessionCache.pas\nOverbyteIcsSslThrdLock -\u003E Ics.Fmx.OverbyteIcsSslThrdLock.pas\nOverbyteIcsHttpSrv -\u003E Ics.Fmx.OverbyteIcsHttpSrv.pas\nOverbyteIcsSocketUtils -\u003E Ics.Fmx.OverbyteIcsSocketUtils.pas\nOverbyteIcsMultipartFtpDownloader -\u003E Ics.Fmx.OverbyteIcsMultipartFtpDownloader.pas\nOverbyteIcsMultipartHttpDownloader -\u003E Ics.Fmx.OverbyteIcsMultipartHttpDownloader.pas\nOverbyteIcsHttpAppServer -\u003E Ics.Fmx.OverbyteIcsHttpAppServer.pas\nOverbyteIcsThreadTimer -\u003E Ics.Fmx.OverbyteIcsThreadTimer.pas\nOverbyteIcsCharsetComboBox -\u003E Ics.Fmx.OverbyteIcsCharsetComboBox.pas\n{ \u003Cem\u003EDemo\u003C\u002Fem\u003E units }\nOverbyteIcsWebAppServerCounter -\u003E Ics.Fmx.OverbyteIcsWebAppServerCounter\nOverbyteIcsWebAppServerMailer -\u003E Ics.Fmx.OverbyteIcsWebAppServerMailer\n\nThe list above is also the list of units that now have different names in the FireMonkey\nframework however most of them share the same source \u003Cem\u003Efile\u003C\u002Fem\u003E.\n\nDropping a ICS component on the form will add the correct unit name for each framework\nautomatically (don't forget to disable the package cache as described above).\n\nUnit OverbyteIcsLibrary.pas has been *deprecated* and ICS IPv8 doesn't use it anymore.\nIf you used it in your own code read the comment in OverbyteIcsLibrary.pas, search\nfor \"deprecated\".\n\n\nSample applications:\n--------------------\n\nWith V8, the sample applications are now grouped into directories according to general\nfunctionality, to make it easier to compare related samples.\n\nMany samples are similar. When searching for something, always look at the date\nthe \u003Cem\u003Edemo\u003C\u002Fem\u003Es where created. The most recent is always the best code! In the lists\nbelow, ACTIVE!! indicates applications that are actively maintained to test and\nsupport new functionality in the ICS components. These may not be simplest\nsamples, but are usually the first to try when learning about a component.\n\nDelphi Win32\u002FWin64 Web Browser sample application\n-------------------------------------------------\n.\\Samples\\delphi\\Broswer\u003Cem\u003EDemo\u003C\u002Fem\u003E\n\u003E FrameBrowserIcs.dpr Web Browser using HtmlViewer component - ACTIVE!!\nNote this sample needs HtmlViewer component installed\n\nDelphi Win32\u002FWin64 FTP sample applications\n------------------------------------------\n.\\Samples\\delphi\\Ftp\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Ftp\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsBasFtp.dpr Basic FTP client program\n\u003E OverbyteIcsConFtp.dpr Basic console mode FTP client\n\u003E OverbyteIcsFtpAsy.dpr Example of asynchronous FTP client\n\u003E OverbyteIcsFtpMulti.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E to do several FTP downloads in parallel to get a list of \u003Cem\u003Efile\u003C\u002Fem\u003Es\n\u003E OverbyteIcsFtpMultipartDownload.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E to FTP download a single large \u003Cem\u003Efile\u003C\u002Fem\u003E in several parts in parallel\n\u003E OverbyteIcsFtpServ.dpr General purpose FTP server, uses TSocketServer - ACTIVE!!\n\u003E OverbyteIcsFtpThrd.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E of multithreaded FTP client, see also FTPASY\n\u003E OverbyteIcsFtpTst.dpr Basic graphical FTP client - ACTIVE!!\n\nDelphi Win32\u002FWin64 SMTP, POP3, NNTP sample applications\n-------------------------------------------------------\n.\\Samples\\delphi\\MailNews\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\MailNews\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsBasNntp.dpr Basic NNTP client program\n\u003E OverbyteIcsConPop3.dpr Basic console mode \u003Cem\u003Edemo\u003C\u002Fem\u003E for POP3 (mail receive)\n\u003E OverbyteIcsConSmtp.dpr Basic console mode \u003Cem\u003Edemo\u003C\u002Fem\u003E for SMTP (mail send)\n\u003E OverbyteIcsMailHtml.dpr Example of HTML formatted EMail sending, including embedded images - ACTIVE!!\n\u003E OverbyteIcsMailRcv.dpr Internet EMail access using POP3 protocol - ACTIVE!!\n\u003E OverbyteIcsMailSnd.dpr Example of EMail sending using SMTP, including \u003Cem\u003Efile\u003C\u002Fem\u003E attach - ACTIVE!!\n\u003E OverbyteIcsMailSndAsync.dpr Example of parallel EMail sending with multiple connections\n\u003E OverbyteIcsMime\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Example of EMail decoding (attached \u003Cem\u003Efile\u003C\u002Fem\u003Es are extracted) - ACTIVE!!\n\u003E OverbyteIcsNewsReader.dpr Example of TNntpCli component (Send\u002Freceive newsgroups) - ACTIVE!!\n\u003E OverbyteIcsSmtpServer.dpr Internet EMail server using SMTP protocol - ACTIVE!!\n\nDelphi Win32\u002FWin64 Miscellaneous applications\n---------------------------------------------\n.\\Samples\\delphi\\Misc\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Misc\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsBufStrmTst.dpr Test of buffered stream classes\n\u003E OverbyteIcsCacheTest.dpr Test of TCacheTree class used in TSslAvlSessionCache\n\u003E OverbyteIcsMD4Test.dpr Test program for MD4 unit\n\u003E OverbyteIcsMD5\u003Cem\u003EFile\u003C\u002Fem\u003E.dpr Example of MD5 unit: computer MD5 checksum for \u003Cem\u003Efile\u003C\u002Fem\u003Es\n\u003E OverbyteIcsMD5Test.dpr Test program for MD5 unit\n\u003E OverbyteIcsOneTimePassword.dpr One Time Password test routines for OverByteIcsOneTimePw unit\n\u003E OverbyteIcsSHA1Test.dpr Test program for SHA unit\n\u003E OverbyteIcsThreadTimer\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for TIcsThreadTimer\n\u003E OverbyteIcsTicks64\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr GetTickCount64 test routines for OverbyteIcsTicks64 unit\n\u003E OverbyteIcsTimer\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Very simple \u003Cem\u003Edemo\u003C\u002Fem\u003E for TIcsTimer\n\u003E OverByteIcsWndControlTest.dpr Test program for windows and threads\n\nDelphi Win32\u002FWin64 DNS, Ping, SNMP, Syslog sample applications\n--------------------------------------------------------------\n.\\Samples\\delphi\\Other\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Other\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsBatchDnsLookup.dpr Batch async DNS lookup using DnsLookup (IPv6 and IPv4)\n\u003E OverbyteIcsConPing.dpr Basic console mode \u003Cem\u003Edemo\u003C\u002Fem\u003E for ping component\n\u003E OverbyteIcsDll1.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E showing how to use a TWSocket component in a DLL\n\u003E OverbyteIcsDll2.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E showing how to use a THttpCli component in a DLL\n\u003E OverbyteIcsDllTst.dpr Test program calling ICSDLL1 and ICSDLL2\n\u003E OverbyteIcsDnsLook.dpr Example of name resolution (IPv6 and IPv4)\n\u003E OverbyteIcsDnsResolver.dpr Batch async DNS lookup event driven using DnsQuery\n\u003E OverbyteIcsFinger.dpr Example of TFingerCli component\n\u003E OverbyteIcsNsLookup.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for the DnsQuery component\n\u003E OverbyteIcsPingTst.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for the ping component, includes trace route\n\u003E OverbyteIcsSnmpCliTst.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for SNMP (simple network management protocol) component\n\u003E OverbyteIcsSysLogClient\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for SysLog client component\n\u003E OverbyteIcsSysLogServer\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E for SysLog server component\n\nDelphi FireMonkey cross-platform samples (Delphi XE2 and later)\n---------------------------------------------------------------\nAll these samples may be built for Mac OS X (and Windows).\n.\\Samples\\delphi\\Platform\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\XSamples.groupproj\n\u003E IcsCli\u003Cem\u003EDemo\u003C\u002Fem\u003E.dproj Example of client for SRV\u003Cem\u003EDEMO\u003C\u002Fem\u003E, IPV4 only\n\u003E IcsTcpSrvIPv6.dproj Basic server without client forms, event-driven, IPv4\u002FIPV6\n\u003E IcsConSmtp.dproj Basic console mode \u003Cem\u003Edemo\u003C\u002Fem\u003E for SMTP (mail send)\n\u003E IcsMailSnd.dproj Example of EMail sending using SMTP, including \u003Cem\u003Efile\u003C\u002Fem\u003E attach\n\u003E IcsMailRcv.dproj Internet EMail access using POP3 protocol\n\u003E IcsHttpsTst.dproj Example of THttpCli component (GET), show many features\n\u003E IcsWebServ.dproj \u003Cem\u003EDemo\u003C\u002Fem\u003E of HTTP server, uses TSocketServer\n\u003E IcsWebAppServ.dproj Advanced HTTP server \u003Cem\u003Edemo\u003C\u002Fem\u003E, uses WebServ, adds sessions\n\u003E IcsFtpTst.dproj Basic graphical FTP client\n\u003E IcsFtpServ.dproj General purpose FTP server, uses TSocketServer\n\u003E IcsUdpLstn.dproj UDP listen \u003Cem\u003Edemo\u003C\u002Fem\u003E\n\u003E IcsUdpSend.dproj UDP send \u003Cem\u003Edemo\u003C\u002Fem\u003E\n\u003E IcsBatchDnsLookup.dproj Batch async DNS lookup using DnsLookup (IPv6 and IPv4)\n\u003E IcsDll1.dproj \u003Cem\u003EDemo\u003C\u002Fem\u003E showing how to use a TWSocket component in a DLL\n\u003E IcsDll2.dproj \u003Cem\u003EDemo\u003C\u002Fem\u003E showing how to use a THttpCli component in a DLL\n\u003E IcsDllTst.dproj Test program calling ICSDLL1 and ICSDLL2\n\u003E IcsThreadTimer\u003Cem\u003EDemo\u003C\u002Fem\u003E.dproj Very simple \u003Cem\u003Edemo\u003C\u002Fem\u003E for TIcsTimer\n\n Delphi Win32\u002FWin64 Socket sample applications\n ---------------------------------------------\n .\\Samples\\delphi\\Socket\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Socket\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsBinCli\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Client program to receive binary and delimited text data. Works with BinTcpSrv \u003Cem\u003Edemo\u003C\u002Fem\u003E.\n\u003E OverbyteIcsCli\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Example of client for SRV\u003Cem\u003EDEMO\u003C\u002Fem\u003E, IPV4 only - ACTIVE!!\n\u003E OverbyteIcsClient5.dpr Basic client GUI applications\n\u003E OverbyteIcsClient7.dpr Simple client application \u003Cem\u003Edemo\u003C\u002Fem\u003Enstrating TWSocket\n\u003E OverbyteIcsConCli1.dpr Basic client\u002Fserver console applications\n\u003E OverbyteIcsConCli2.dpr Basic client\u002Fserver console applications with thread\n\u003E OverbyteIcsConSrv1.dpr Basic server application in console mode\n\u003E OverbyteIcsConUdpLstn.dpr Console application to listen for UDP messages\n\u003E OverbyteIcsDynCli.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E of dynamically created TWSocket components\n\u003E OverbyteIcsMtSrv.dpr Basic server, multi-threaded, see THRDSRV for better code\n\u003E OverbyteIcsRecv.dpr Simple \u003Cem\u003Efile\u003C\u002Fem\u003E receive (server), use with SENDER \u003Cem\u003Edemo\u003C\u002Fem\u003E (client)\n\u003E OverbyteIcsSender.dpr Simple \u003Cem\u003Efile\u003C\u002Fem\u003E send (client), use with RECV \u003Cem\u003Edemo\u003C\u002Fem\u003E (server)\n\u003E OverbyteIcsServer5.dpr Basic server GUI applications\n\u003E OverbyteIcsSocksTst.dpr How to use TWSocket with SOCKS protocol (firewall traversing)\n\u003E OverbyteIcsSrv\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Example of server using a TTable - ACTIVE!!\n\u003E OverbyteIcsSrvTcp.dpr Basic server without client forms, event-driven\n\u003E OverbyteIcsSvcTcp.dpr Same as SRVTCP but as an NT\u002F2K\u002FXP service\n\u003E OverbyteIcsTWSChat.dpr Chat program (both client and server in a single program)\n\u003E OverbyteIcsTcpSrv.dpr Basic server without client forms, event-driven, IPv4 only - ACTIVE!!\n\u003E OverbyteIcsTcpSrvIPv6.dpr Basic server without client forms, event-driven, IPv4\u002FIPV6 - ACTIVE!!\n\u003E OverbyteIcsTelnetClient.dpr Telnet client using a TnEmulVT\n\u003E OverbyteIcsThrdSrv.dpr Basic multithreaded TCP server, banner sent in main thread\n\u003E OverbyteIcsThrdSrvV2.dpr Basic multithreaded TCP server, banner sent in worker thread\n\u003E OverbyteIcsThrdSrvV3.dpr Basic TCP server showing how to use TWSocketThrdServer\n\u003E OverbyteIcsTn\u003Cem\u003EDemo\u003C\u002Fem\u003E.dpr Telnet client using a TMemo\n\u003E OverbyteIcsTnSrv.dpr Basic TCP server with client forms, event-driven\n\u003E OverbyteIcsUdpLstn.dpr UDP listen \u003Cem\u003Edemo\u003C\u002Fem\u003E\n\u003E OverbyteIcsUdpSend.dpr UDP send \u003Cem\u003Edemo\u003C\u002Fem\u003E\n\nDelphi Win32\u002FWin64 SSL-enabled sample applications\n--------------------------------------------------\n.\\Samples\\delphi\\sslinternet\\Ssl\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsHttpsTst.dpr Example of TSslHttpCli component (GET) - ACTIVE!!\n\u003E OverbyteIcsPemTool.dpr ICS Pem Certificate Tool - Create and import certificates in OpenSLL PEM format\n\u003E OverbyteIcsSimpleSslCli.dpr Example of simple SSL client using TSslWSocket - ACTIVE!!\n\u003E OverbyteIcsSimpleSslServer.dpr Example of SSL server using TSslWSocket - ACTIVE!!\n\u003E OverbyteIcsSslFtpServ.dpr General purpose FTP SSL server, uses TSocketServer - ACTIVE!!\n\u003E OverbyteIcsSslFtpTst.dpr Basic graphical FTP SSL client - ACTIVE!!\n\u003E OverbyteIcsSslMailRcv.dpr Internet EMail access using POP3 protocol and SSL - ACTIVE!!\n\u003E OverbyteIcsSslMailSnd.dpr Example of EMail sending using SMTP and SSL - ACTIVE!!\n\u003E OverbyteIcsSslNewsRdr.dpr Example of TSslNntpCli component (Send\u002Freceive newsgroups) - ACTIVE!!\n\u003E OverbyteIcsMsVerify.dpr Verify and show an OpenSSL certificate or certificate chain using\n class TMsCertChainEngine which uses MS crypto API - ACTIVE!!\n\u003E OverbyteIcsSslSniSrv.dpr Test of Server Name Indication (SNI) in server mode - ACTIVE!!\n\u003E OverbyteIcsSslWebServ.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E of HTTPS server, uses TSocketServer - ACTIVE!!\n\u003E OverbyteIcsSslWebAppServer.dpr Advanced HTTPS server \u003Cem\u003Edemo\u003C\u002Fem\u003E, uses WebServ, adds sessions - ACTIVE!!\n\u003E OverbyteIcsSslSmtpServer.dpr Internet EMail server using SMTP protocol and SSL - ACTIVE!!\n\nDelphi Win32\u002FWin64 HTTP sample applications\n-------------------------------------------\n.\\Samples\\delphi\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es\\Web\u003Cem\u003EDemo\u003C\u002Fem\u003Es.bpg - Project group\n\u003E OverbyteIcsConHttp.dpr Basic console mode HTTP client\n\u003E OverbyteIcsHttpAsp.dpr Example of THttpCli component with cookie (POST to an ASP page)\n\u003E OverbyteIcsHttpAsy.dpr Example of THttpCli component with multiple async requests (GET)\n\u003E OverbyteIcsHttpChk.dpr Example of THttpCli to check for valid URL using HEAD request\n\u003E OverbyteIcsHttpDmo.dpr Simple HTTP client \u003Cem\u003Edemo\u003C\u002Fem\u003E with proxy\n\u003E OverbyteIcsHttpGet.dpr Example of THttpCli component (GET into a \u003Cem\u003Efile\u003C\u002Fem\u003E)\n\u003E OverbyteIcsHttpMultipartDownload.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E application for TMultipartHttpDownloader to download \u003Cem\u003Efile\u003C\u002Fem\u003Es using simultaneous connections\n\u003E OverbyteIcsHttpPg.dpr Example of THttpCli component (POST to CGI script)\n\u003E OverbyteIcsHttpPost.dpr Example of THttpCli component (POST), work with WebServ sample - ACTIVE!!\n\u003E OverbyteIcsHttpThrd.dpr Example of THttpCli component (multi-threaded GET)\n\u003E OverbyteIcsHttpTst.dpr Example of THttpCli component (GET), show many features - ACTIVE!!\n\u003E OverbyteIcsIsapi.dll Example of FTP client component within an ISAPI extension\n\u003E OverbyteIcsWebAppServer.dpr Advanced HTTP server \u003Cem\u003Edemo\u003C\u002Fem\u003E, uses WebServ, adds sessions - ACTIVE!!\n\u003E OverbyteIcsWebServ.dpr \u003Cem\u003EDemo\u003C\u002Fem\u003E of HTTP server, uses TSocketServer - ACTIVE!!\n\nTwo samples are not in the project group since they need extra components installed\n\u003E OverbyteIcsRest\u003Cem\u003EDemo\u003C\u002Fem\u003E.drp \u003Cem\u003EDemo\u003C\u002Fem\u003E program showing how to use REST API from Google and Yahoo\n\u003E OverbyteIcsRestJson\u003Cem\u003EDemo\u003C\u002Fem\u003E.drp \u003Cem\u003EDemo\u003C\u002Fem\u003E program showing how to use REST API from Google Search and JSON\n\nSample Notes\n------------\nNote 1: Not all samples have been rewritten in C++ for C++ Builder. And those rewritten are\n frequently much simpler. So C++ Builder user: have a look at the Delphi sample too !\nNote 2: Follow \"UserMade\" link on ICS web site to find more sample programs written by\n ICS users.\n\nAs explained in the component installation, you may encounter an error loading\na sample application or running it. This may be because the last time I loaded the form,\nI was using another Delphi or C++ Builder version which has new properties.\nYou can safely ignore messages related to those new properties. They are not used\nin the samples. (The properties are CharSet, OldCreateOrder and others).\nYou can also encounter error about duplicate resources. You can ignore them\nsafely. If you have those errors, open each form in the IDE, ignore the error\nthen recompile. If you don't open the form in the IDE, you'll get the errors\nat runtime and your program will abort.\n\nWhen installing a new version, always delete old dcu, obj, dcpil and always\nrecompile everything !\nClose everything before recompiling the library or packages.\nWhen installing a new version, be sure to unzip it in the same directory\ntree as the old one or you'll mess both versions.\n\n\nAbout SSL:\n----------\n\nTSslWSocket and TSslWSocketServer component are derived from the standard\nTWSocket and TWSocketServer component. The SSL code is compiled into the\ncomponent only if you define USE_SSL symbol to your packages and projects.\nJust add USE_SSL to the defines in the project or package options and\nrecompile everything.\n\nThe components make use of LIBEAY32.DLL and SSLEAY32.DLL to handle SSL\nprotocol stuff. The DLLs are dynamically loaded at runtime. It means that\nthe DLLs will only be required at runtime when you first make use of a SSL\nfunction. Your applications will run on systems without OpenSSL DLLs as long\nas you don't call any SSL function. The \u003Cem\u003Efile\u003C\u002Fem\u003Es may be downloaded from:\n\nhttp:\u002F\u002Fwiki.overbyte.be\u002Fwiki\u002Findex.php\u002FICS_Download\n\nMost ICS components have their SSL enabled counter part. They work exactly\nthe same way as the regular component except when SSL specific stuff is needed,\nfor example certificates. To support SSL stuff, the SSL-enabled version use\nsome new properties, events and methods. Many sample programs have their\nSSL-enabled counter part in a separate sources located in SslInternet folder.\n\nSSL certificates:\nTo make use of SSL, you frequently need certificates. I provide some \u003Cem\u003Edemo\u003C\u002Fem\u003E\ncertificates I built using command line OpenSSL tool. PEM certificates can\nbe opened by a text editor, LF as well as CRLF are allowed as line breaks.\n\nCACERT.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E certificate for \"Example CA\"\n01CERT.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E certificate which is signed by CACERT.PEM\n01KEY.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E private key for 01CERT.PEM\n Passphrase is \"password\".\nCLIENT.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E certificate and private key.\n Passphrase is \"password\".\nSERVER.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E certificate and private key.\n Passphrase is \"password\".\nROOT.PEM : A \u003Cem\u003Edemo\u003C\u002Fem\u003E CA certificate.\n Passphrase is \"password\".\nTRUSTEDCABUNDLE.PEM :\n A \u003Cem\u003Edemo\u003C\u002Fem\u003E CA \u003Cem\u003Efile\u003C\u002Fem\u003E in PEM format containing multiple\n well known root CA certificates to be specified in\n property CA Path of the \u003Cem\u003Edemo\u003C\u002Fem\u003E applications. Read\n the comments included in this \u003Cem\u003Efile\u003C\u002Fem\u003E.\n6F6359FC.0 : Located in sub directory SslInternet\\TrustedCaStore,\n it's the \u003Cem\u003Efile\u003C\u002Fem\u003E CACERT.PEM stored with a hashed \u003Cem\u003Efile\u003C\u002Fem\u003E\n name. Directory TrustedCaStore can be specified in\n property CA Path of the \u003Cem\u003Edemo\u003C\u002Fem\u003E applications.\n\nFor details about certificate, see the excellent book:\n \"Network security with OpenSSL\", O'Reilly, ISBN 10: 0-596-00270-X\n\nThe SSL \u003Cem\u003Edemo\u003C\u002Fem\u003E project OverbyteIcsPemTool may be used to create self\nsigned PEM certificates, certificate requests for commercial use, to\nconvert existing certificates in the Windows Certificate Store\nto PEM format understood by OpenSSL and to examine PEM certificates.\n\nYou will find more information in IcsSslHowTo.txt \u003Cem\u003Efile\u003C\u002Fem\u003E.\n\n\nCommercial SSL certificates:\nTo avoid browsers giving certificate warning messages, you need to purchase\na SSL certificate from one of numerous companies, such as Verisign, Thawte\nGeoTrust or RapidSSL. Prices vary dramatically and are often cheaper from\nresellers such as Servertastic than from the main issuing companies.\n\nThe main purpose of an SSL certificate is to prove the identity of the owner\nof a web site, ideally the company behind the web site. That usually requires\npaper work identifying the company is submitted and also proof the domain being\nprotected is owned by that company, it usually also involves telephone calls.\nSuch certificates are usually called fully validated and cost $120 or more each\nyear for a single domain, ie secure.website.com. Wild card certificates cost\n$350 or more, but protect multiple sub-domains, ie web.website.com as well.\nExtended Validation certificates cost from $450 a year, and show the company name\nin green in the address bar. For testing and simple use, instant issued SSL\ncertificates cost from $15 per year and protect a single domain only with automated\nchecking reducing the cost (an email to admin@website.com to prove you receive\nemail for the domain, perhaps a telephone call as well). Note these instant\ncertificates do not include a company name.\n\nTo buy and install an SSL certificate for use with ICS and OpenSSL follow these\nsteps:\n\n1 - Build the SSL \u003Cem\u003Edemo\u003C\u002Fem\u003E project OverbyteIcsPemTool. Take Extras, Create Certificate\nRequests, fill in the various fields (check other certificates if uncertain, the\nCommon Name is the domain to protect, ie secure.website.com and E-Mail should be\nan email address at the than domain, ideally admin or administrator, 2048 bits.\nClick Create, and specify two \u003Cem\u003Efile\u003C\u002Fem\u003E names, first for the private key (mykey.pem)\nthen the certificate request \u003Cem\u003Efile\u003C\u002Fem\u003E (myreq.pem). The request can also be done using\nOpenSSL command line arguments, or you can build it into your own application.\n\n2 - Choose you SSL supplier and certificate type, at some point during the ordering\nprocess you will be asked for the certificate request, so open the PEM \u003Cem\u003Efile\u003C\u002Fem\u003E you\nsaved with a text editor and copy the base64 encoded block starting\n-BEGIN CERTIFICATE REQUEST- into the web form. It should be decoded and displayed\nso you check it's correct. The private key is not needed for the certificate to\nbe issued. At this point the validation process starts as mentioned above, which\nmight take hours or weeks to complete.\n\n3 - Eventually the SSL certificate should be issued, either by email or made\navailable to download from the supplier's web site. It should be in X.509 format\nin a base64 encoded block starting -BEGIN CERTIFICATE- which should be saved as\na PEM \u003Cem\u003Efile\u003C\u002Fem\u003E (mycert.pem). There should also be an Intermediate CA certificate,\nwith which your new certificate was signed, which should also be saved as a \u003Cem\u003Efile\u003C\u002Fem\u003E\n(mycacert.pem). This may also be downloadable from the supplier as a bundle \u003Cem\u003Efile\u003C\u002Fem\u003E\nand should be common to any certificates they issue, ie RapidSSL_CA_bundle.pem.\n\n4 - The OverbyteIcsPemTool tool has a View PEM button that allows examination of\nyour new PEM \u003Cem\u003Efile\u003C\u002Fem\u003Es.\n\n5 - The three PEM \u003Cem\u003Efile\u003C\u002Fem\u003Es now need to be attached to the SslContext component in\nyour application, with properties SslCert\u003Cem\u003EFile\u003C\u002Fem\u003E, SslPrivKey\u003Cem\u003EFile\u003C\u002Fem\u003E and SslCA\u003Cem\u003EFile\u003C\u002Fem\u003E.\nThe request certificate \u003Cem\u003Efile\u003C\u002Fem\u003E has no further use.\n\n\nSupport:\n--------\n\nThere is a mailing list to discuss F. Piette's components and applications.\nTo subscribe surf to http:\u002F\u002Flists.elists.org\u002Fmailman\u002Flistinfo\u002Ftwsocket.\nDo not use an aliased EMail address, use your real EMail address, the one\nyou'll use to post messages. After asking for subscription, you'll receive a\nconfirmation email you must reply to it or you will _not_ be added to the\nsubscriber's list (this is to check for email path and also make sure\nsomeone doesn't subscribe you without your consent).\n\nOnce you have been registered with the mailing list processor, you can\nsend messages to twsocket@elists.org. Every subscriber will receive a copy of\nyour message. I will respond, but anybody is welcome to respond to each\nother's messages. So every body can share his expertise. There are many other\nuseful mailing lists at http:\u002F\u002Fwww.elists.org !\n\nBefore asking a question, browse the message archive you can download from\nthe support page on the web site (click the \"support\" button from main page)\nand from the mailing list web site http:\u002F\u002Flists.elists.org\u002Fmailman\u002Flistinfo\u002Ftwsocket.\nGoogle is also archiving the list with some delay.\n\nIf you found a bug, please make a short program that reproduces the problem\nattach it to a message addressed to me. If I can reproduce the problem, I\ncan find a fix ! Do not send exe \u003Cem\u003Efile\u003C\u002Fem\u003E but just source code and instructions.\nAlways use the latest version (beta if any) before reporting any bug.\n\nYou are also encouraged to use the support mailing list to ask for\nenhancements. You are welcome to post your own code.\n\nThe support mailing list has sometimes a heavy traffic. If\nit is too much for you, you can select \"digest\" mode in which mailing list\nprocessor will mail you only one big message per day. To select digest mode\ngoto http:\u002F\u002Flists.elists.org\u002Fmailman\u002Flistinfo\u002Ftwsocket.\n\nYou can also subscribe to another mailing list called twsocket-announce which\nwill receive only very few messages when major bug fixes or updates are done.\nThe subscription process is the same as for the other mailing list.\nSee above procedure.\n\n\nRelease notes\n-------------\n\nThere is no global release notes. Each component and sample has his own history.\nYou can find those histories in the comment in the beginning of each source \u003Cem\u003Efile\u003C\u002Fem\u003E.\nThere are also a bunch of useful comments in the source code. You should at least\nbrowse the source for the components you are interested in.\n\n\nMidWare\n-------\n\nIf you wants to build client\u002Fserver applications using TCP\u002FIP protocol, you\ncan do it easily with ICS. But you can do it much more easily using another\nfreeware product from Fran鏾is Piette: MidWare. Available from the same web\nsite http:\u002F\u002Fwww.overbyte.be.\n\n\nfrancois.piette@overbyte.be\nfrancois.piette@swing.be\nhttp:\u002F\u002Fwww.overbyte.be\u002F\nhttp:\u002F\u002Fwiki.overbyte.be\u002F","createTime":"2016-05-03 16:04:46","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flingwanqiu\u002F9508945\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flingwanqiu\u002F9508945\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-9508945-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fgz19871113\u002Farticle\u002Fdetails\u002F108591801","title":"【\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity系列教程(一)】\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity入门","desc":"注:本文是【\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity系列教程】的第一篇。本系列教程详细、完整、深入地介绍了微软的\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity技术,描述了如何运用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity实现应用程序的用户管理,以及实现应用程序的认证与授权等相关技术,译者希望本系列教程能成为掌握\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Identity技术的一份完整而有价值的资料。读者若是能够按照文章的描述,一边阅读、一边实践、一边理解,定能有意想不到的巨大收获!希望本系列博文能够得到广大园友的高度推荐。\n\n\n\n\n\n\n\n13 Getting S..","createTime":"2020-09-15 02:10:41","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fgz19871113\u002Farticle\u002Fdetails\u002F108591801\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fgz19871113\u002Farticle\u002Fdetails\u002F108591801\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-108591801-bbs-395905692.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1751430132739_16364\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"}],"staffDOList":[{"id":null,"communityId":381,"username":"community_269","userNickname":"下载资源悬赏专区社区","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:10:11","updateTime":"2021-05-12 18:10:11","lastLoginTime":"2021-05-12 18:10:11"}],"communityConfig":{"scoreType":0,"scoreItems":{"0":"给本帖投票","1":"锋芒小试,眼前一亮","2":"潜力巨大,未来可期","3":"持续贡献,值得关注","4":"成绩优异,大力学习","5":"贡献巨大,全力支持"}},"shouldApply":false,"subscribeAble":false,"operatorAble":false,"commentNeedJoinCommunity":false},"default2014LiveRoom":[{"itemType":"","description":"高峰论坛","title":"2022 技术英雄会","url":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002Fcsdnnews\u002FfsNR5NWp?chat=1&title=1&footer=1","images":["https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221016050009.png"],"ext":{"time":"9:00","liveRoomUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fcsdnnews\u002FfsNR5NWp"}}]},"isGooglebot":false,"canonical":"https:\u002F\u002Fwww.csdn.net\u002Ftopics\u002F395905692","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F395905692","typeId":"index","hasIndex":false},"CFG":{"ALIPLAYER_VERSION":"v4","ALIPLAYER_H5_VERSION":"mobile_v1","ENV":"prod","ROOT_URL":"https:\u002F\u002Fcms-mall.csdn.net\u002F","VUE_APP_API_URL_SERVER":"http:\u002F\u002Fcms-community-api.internal.csdn.net\u002F","VUE_APP_API_URL":"https:\u002F\u002Fcms-api.csdn.net\u002F","LOGIN_URL":"https:\u002F\u002Fpassport.csdn.net\u002Faccount\u002Flogin","VUE_APP_DOMAIN_SKILL":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_DOMAIN_PATH":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_COMMUNITY_API_URL":"https:\u002F\u002Fcommunity-api.csdn.net\u002F","VUE_APP_CCLOUD_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fcommunity-cloud\u002Fv1\u002F","VUE_APP_SKILL_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fskilltree\u002Fapi\u002F","VUE_APP_SEARCH_PLUGIN_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fsearchplugin\u002F","VUE_APP_COMMUNITY_ASK_API_URL":"https:\u002F\u002Fmp-ask.csdn.net\u002F","VUE_APP_ME_URL":"https:\u002F\u002Fme.csdn.net\u002F","VUE_APP_CCLOUD_RESUME":"https:\u002F\u002Fbizapi.csdn.net\u002Fjob-api\u002F","VUE_APP_CCLOUD_MAIN":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_UC":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_BZP_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002F","VUE_APP_CCLOUD_START_API_URL":"https:\u002F\u002Fmp-action.csdn.net\u002F","VUE_APP_PRACTIVE":"https:\u002F\u002Fbizapi.csdn.net\u002Fdaily-practice\u002F","VUE_APP_CCLOUD_HOSTPATH":"https:\u002F\u002Fbbs.csdn.net\u002F"},"queries":{"pageId":[],"domain":["ccloud.csdn.net\u002Fccloud\u002Fdetail1"],"id":["395905692"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F395905692","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F395905692","active":0,"navBarFixed":false,"title":"custom config file demo in ASP.NET下载","isLive":false,"contentType":{"text":"text","picture":"picture","link":"link","video":"video","vote":"vote","live":"live","blog":"blog","long_text":"long_text","task_text":"task_text"},"liveUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002F","spmExtra":{"id":381,"topicId":395905692},"keywords":"","description":"以下内容是CSDN社区关于custom config file demo in ASP.NET下载相关内容,如果想了解更多关于下载资源悬赏专区社区其他内容,请访问CSDN社区。","mounted":false,"infoNoticeData":{"src":"","href":"","spm":"","delay":5},"showDialogInfoNotice":false};</script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/runtime.2c8d4172.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/common.9ac324e8.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/tpl/ccloud-detail/index.93a5f007.js"></script></body> <!----> <script> window.csdn.sideToolbar = { options: { qr: { isShow: true, data: [ { imgSrc: 'https://csdnimg.cn/release/cmsfe/public/img/ewm.9010d6e5.png', desc: "关注公众号" }, ] }, help: { isShow: false, }, contentEl: document.getElementsByClassName("cloud-maintainer")[0] }, }; </script> <script src="https://g.csdnimg.cn/side-toolbar/2.9/side-toolbar.js" ></script> <!----> <!----> <!----> <script src="https://csdnimg.cn/release/blog_editor_html/release1.7.5/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js"></script> <script src="https://g.csdnimg.cn/lib/editor-page-detail/v2.2.0/js/runDetail.min.js"></script> <!----> <!----> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/collection-box/2.1.0/collection-box.js"></script> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/common/csdn-cert/csdn-cert.js"></script> <!----></html>