实例介绍
基本介绍:
Myrtille为用户提供了通过Web浏览器访问远程桌面、应用程序和SSH服务器的简单快捷方法。技术上讲,Myrtille是一个HTTP(S)到RDP和SSH的网关。
工作原理:
用户输入(键盘、鼠标、触摸屏)从Web浏览器转发到HTTP(S)网关,然后上传到与RDP(或SSH)服务器保持会话的RDP(或SSH)客户端。这些操作的显示结果(或不显示)被流式传输回浏览器,通过RDP(或SSH)客户端和网关。
实现相当直接以保持速度和稳定性。一些优化措施,如输入缓冲和显示质量调整有助于减轻延迟和带宽问题。
主要特点:
包括HTTP(S)到RDP和SSH网关、Hyper-V VM直接连接、多因素认证(MFA)、Active Directory集成、会话共享、从URL启动远程程序、文件传输、PDF虚拟打印机、音频支持、HTML4和HTML5支持、响应式设计、剪贴板同步、PNG、JPEG和WebP压缩、实时连接信息、屏幕键盘(多语言)、REST APIs等。
依赖库:
Myrtille使用了多种开源软件,包括FreeRDP、OpenSSL工具包、libWebP、Log4net、OASIS.Integration、PdfScribe、RedMon、SSH.NET、xtermjs、NAudio等。
【核心代码】
文件清单
└── myrtille-b99671589ad0c18f7ccb0878d08e05bcb9cb15c6
├── CHANGELOG
├── Dockerfile
├── DOCUMENTATION.md
├── LICENSE
├── Myrtille.Admin.Services
│ ├── App.config
│ ├── Controllers
│ │ └── ConnectionController.cs
│ ├── Myrtille.Admin.Services.csproj
│ ├── Myrtille.Admin.Services.Install.ps1
│ ├── Myrtille.Admin.Services.Uninstall.ps1
│ ├── MyrtilleApiHost.cs
│ ├── myrtille.ico
│ ├── packages.config
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Services
│ │ └── ConnectionService.cs
│ └── ServicesInstaller.cs
├── Myrtille.Admin.Web
│ ├── css
│ │ └── iframe.css
│ ├── Default.aspx
│ ├── Default.aspx.cs
│ ├── Default.aspx.designer.cs
│ ├── js
│ │ └── iframe.js
│ ├── Logout.aspx
│ ├── Logout.aspx.cs
│ ├── Logout.aspx.designer.cs
│ ├── Myrtille.Admin.Web.csproj
│ ├── packages.config
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── README
│ ├── src
│ │ ├── CaptureClient.cs
│ │ ├── ConnectionClient.cs
│ │ ├── DisconnectionClient.cs
│ │ └── SharingClient.cs
│ ├── Web.config
│ ├── Web.Debug.config
│ └── Web.Release.config
├── Myrtille.Common
│ ├── amd64
│ │ ├── ps5ui.dll
│ │ ├── pscript5.dll
│ │ ├── pscript.hlp
│ │ ├── pscript.ntf
│ │ ├── redmon64.dll
│ │ └── SCPDFPRN.ppd
│ ├── CertEnroll_Interop.dll
│ ├── gpl-3.0.rtf
│ ├── Helpers
│ │ ├── AccountHelper.cs
│ │ ├── CertificateHelper.cs
│ │ ├── ClientIPHelper.cs
│ │ ├── CryptoHelper.cs
│ │ ├── FileHelper.cs
│ │ ├── FirewallHelper.cs
│ │ ├── GuidHelper.cs
│ │ ├── HttpSessionHelper.cs
│ │ ├── IISHelper.cs
│ │ ├── MailHelper.cs
│ │ ├── PermissionsHelper.cs
│ │ ├── PipeHelper.cs
│ │ ├── ProcessHelper.cs
│ │ ├── WindowHelper.cs
│ │ └── XmlTools.cs
│ ├── Log
│ │ ├── Log4netTraceFilter.cs
│ │ └── Log4netTraceListener.cs
│ ├── Myrtille.Common.csproj
│ ├── Network
│ │ └── Buffer.cs
│ ├── packages.config
│ ├── PdfScribe
│ │ ├── NativeMethods.cs
│ │ └── PdfScribeInstaller.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── redmon_src.zip
│ └── x86
│ ├── ps5ui.dll
│ ├── pscript5.dll
│ ├── pscript.hlp
│ ├── pscript.ntf
│ ├── redmon32.dll
│ └── SCPDFPRN.ppd
├── Myrtille.Enterprise
│ ├── ActiveDirectory.cs
│ ├── Data
│ │ ├── HostAccessGroups.cs
│ │ ├── Host.cs
│ │ ├── MyrtilleEnterpriseDBContext.cs
│ │ ├── Session.cs
│ │ ├── SessionGroup.cs
│ │ └── SessionHostCredential.cs
│ ├── Helpers
│ │ └── DirectoryExceptionHelper.cs
│ ├── LocalAdmin.cs
│ ├── Migrations
│ │ └── MigrationConfiguration.cs
│ ├── Myrtille.Enterprise.csproj
│ ├── packages.config
│ └── Properties
│ └── AssemblyInfo.cs
├── Myrtille.MFAProviders
│ ├── Myrtille.MFAProviders.csproj
│ ├── OASISOTPProvider.cs
│ ├── packages.config
│ └── Properties
│ └── AssemblyInfo.cs
├── Myrtille.Printer
│ ├── AdobeIcon.ico
│ ├── App.config
│ ├── app.manifest
│ ├── GhostScript32.cs
│ ├── GhostScript64.cs
│ ├── gsdll32.dll
│ ├── gsdll64.dll
│ ├── Myrtille.Printer.csproj
│ ├── NativeMethods32.cs
│ ├── NativeMethods64.cs
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── SetOutputFilename.cs
│ ├── SetOutputFilename.Designer.cs
│ ├── SetOutputFilename.resx
│ └── Settings.cs
├── Myrtille.RDP
│ ├── App.config
│ ├── FreeRDP.ico
│ ├── Myrtille.RDP.csproj
│ ├── packages.config
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── README
├── Myrtille.Services
│ ├── app.config
│ ├── ApplicationPoolService.cs
│ ├── ConnectionBroker
│ │ ├── ConnectionBrokerDbContext.cs
│ │ ├── Server.cs
│ │ ├── Session.cs
│ │ ├── SessionState.cs
│ │ ├── SessionType.cs
│ │ ├── Target.cs
│ │ ├── TargetIp.cs
│ │ ├── TargetProperty.cs
│ │ └── User.cs
│ ├── EnterpriseService.cs
│ ├── FileStorage.cs
│ ├── MFAAuthentication.cs
│ ├── myrtille.ico
│ ├── Myrtille.Services.csproj
│ ├── Myrtille.Services.Install.ps1
│ ├── Myrtille.Services.Uninstall.ps1
│ ├── packages.config
│ ├── Password51.ps1
│ ├── PrinterService.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RDPSetup.reg
│ ├── RemoteSessionProcess.cs
│ └── ServicesInstaller.cs
├── Myrtille.Services.Contracts
│ ├── Adapters
│ │ ├── IEnterpriseAdapter.cs
│ │ └── IMultifactorAuthenticationAdapter.cs
│ ├── Enums
│ │ ├── CaptureFormat.cs
│ │ ├── EnterpriseMode.cs
│ │ ├── HostType.cs
│ │ ├── RemoteSessionCommand.cs
│ │ ├── RemoteSessionExitCode.cs
│ │ ├── RemoteSessionState.cs
│ │ └── SecurityProtocol.cs
│ ├── IApplicationPoolService.cs
│ ├── ICaptureService.cs
│ ├── IConnectionService.cs
│ ├── IDisconnectionService.cs
│ ├── IEnterpriseService.cs
│ ├── IFileStorage.cs
│ ├── IMFAAuthentication.cs
│ ├── IPrinterService.cs
│ ├── IRemoteSessionProcess.cs
│ ├── ISharingService.cs
│ ├── Models
│ │ ├── Connection.cs
│ │ ├── ConnectionInfo.cs
│ │ ├── EnterpriseAuthenticationErrorHelper.cs
│ │ ├── EnterpriseConnectionDetails.cs
│ │ ├── EnterpriseHost.cs
│ │ ├── EnterpriseHostEdit.cs
│ │ ├── EnterpriseHostSessionCredentials.cs
│ │ ├── EnterpriseSession.cs
│ │ ├── GuestInfo.cs
│ │ ├── HostInfo.cs
│ │ ├── UserInfo.cs
│ │ └── VMInfo.cs
│ ├── Myrtille.Services.Contracts.csproj
│ └── Properties
│ └── AssemblyInfo.cs
├── Myrtille.Setup
│ ├── Myrtille.Setup.vdproj
│ ├── postbuild.cmd
│ └── wirunsql.vbs
├── Myrtille.sln
├── Myrtille.SSH
│ ├── App.config
│ ├── icons8-console-50-black.ico
│ ├── Myrtille.SSH.csproj
│ ├── packages.config
│ ├── PipeMessaging.cs
│ ├── Program.cs
│ └── Properties
│ └── AssemblyInfo.cs
├── Myrtille.Web
│ ├── App_Start
│ │ └── BundleConfig.cs
│ ├── css
│ │ ├── Default.css
│ │ └── xterm.css
│ ├── Default.aspx
│ ├── Default.aspx.cs
│ ├── Default.aspx.designer.cs
│ ├── favicon.ico
│ ├── GetCursor.aspx
│ ├── GetCursor.aspx.cs
│ ├── GetCursor.aspx.designer.cs
│ ├── GetHash.aspx
│ ├── GetHash.aspx.cs
│ ├── GetHash.aspx.designer.cs
│ ├── GetUpdate.aspx
│ ├── GetUpdate.aspx.cs
│ ├── GetUpdate.aspx.designer.cs
│ ├── Global.asax
│ ├── Global.asax.cs
│ ├── handlers
│ │ ├── AudioSocketHandler.ashx
│ │ ├── AudioSocketHandler.ashx.cs
│ │ ├── EventSourceHandler.ashx
│ │ ├── EventSourceHandler.ashx.cs
│ │ ├── LongPollingHandler.ashx
│ │ ├── LongPollingHandler.ashx.cs
│ │ ├── SocketHandler.ashx
│ │ └── SocketHandler.ashx.cs
│ ├── img
│ │ ├── bandwidthTest.png
│ │ ├── icons8-menu-horizontal-21.png
│ │ ├── myrtille.png
│ │ ├── RemoteDesktop.png
│ │ ├── RemoteSSH.png
│ │ └── test.webp
│ ├── js
│ │ ├── audio
│ │ │ └── audiowebsocket.js
│ │ ├── config.js
│ │ ├── dialog.js
│ │ ├── display
│ │ │ ├── canvas.js
│ │ │ ├── divs.js
│ │ │ └── terminaldiv.js
│ │ ├── display.js
│ │ ├── myrtille.js
│ │ ├── network
│ │ │ ├── buffer.js
│ │ │ ├── eventsource.js
│ │ │ ├── longpolling.js
│ │ │ ├── websocket.js
│ │ │ └── xmlhttp.js
│ │ ├── network.js
│ │ ├── tools
│ │ │ ├── common.js
│ │ │ └── convert.js
│ │ ├── user
│ │ │ ├── keyboard.js
│ │ │ ├── mouse.js
│ │ │ └── touchscreen.js
│ │ ├── user.js
│ │ └── xterm
│ │ ├── addons
│ │ │ └── fit
│ │ │ └── fit.js
│ │ └── xterm.js
│ ├── log
│ │ └── README
│ ├── Myrtille.Web.csproj
│ ├── Myrtille.Web.Install.ps1
│ ├── Myrtille.Web.Uninstall.ps1
│ ├── node_modules
│ │ ├── @interactjs
│ │ │ └── types
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ ├── index.js.map
│ │ │ ├── index.prod.js
│ │ │ ├── index.prod.js.map
│ │ │ ├── LICENSE
│ │ │ ├── NativePointerEventType.js
│ │ │ ├── NativePointerEventType.js.map
│ │ │ ├── NativePointerEventType.prod.js
│ │ │ ├── NativePointerEventType.prod.js.map
│ │ │ ├── package.json
│ │ │ ├── README.md
│ │ │ └── typings.d.ts
│ │ ├── interactjs
│ │ │ ├── bower.json
│ │ │ ├── dist
│ │ │ │ ├── api
│ │ │ │ │ ├── doclets.json
│ │ │ │ │ ├── DropEvent_DropEvent.html
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.svg
│ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.svg
│ │ │ │ │ │ ├── OpenSans-Bold-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.svg
│ │ │ │ │ │ ├── OpenSans-Italic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.svg
│ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Light-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Light-webfont.svg
│ │ │ │ │ │ ├── OpenSans-Light-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.svg
│ │ │ │ │ │ ├── OpenSans-Regular-webfont.woff
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.svg
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf
│ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.woff
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.eot
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.svg
│ │ │ │ │ │ ├── OpenSans-Semibold-webfont.ttf
│ │ │ │ │ │ └── OpenSans-Semibold-webfont.woff
│ │ │ │ │ ├── global.html
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── ijs-32.png
│ │ │ │ │ │ ├── ijs-64.png
│ │ │ │ │ │ ├── ijs-anim-short.svg
│ │ │ │ │ │ ├── ijs-anim.svg
│ │ │ │ │ │ ├── ijs-icon.svg
│ │ │ │ │ │ └── ijs.svg
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── Interactable.html
│ │ │ │ │ ├── InteractEvent_InteractEvent.html
│ │ │ │ │ ├── Interaction_Interaction.html
│ │ │ │ │ ├── jsdoc_index.md.html
│ │ │ │ │ ├── module.exports_module.exports.html
│ │ │ │ │ ├── module-interact.html
│ │ │ │ │ ├── module-modifiers_aspectRatio.html
│ │ │ │ │ ├── module-modifiers_snapEdges.html
│ │ │ │ │ ├── packages_@interactjs_actions_drag_plugin.ts.html
│ │ │ │ │ ├── packages_@interactjs_actions_drop_DropEvent.ts.html
│ │ │ │ │ ├── packages_@interactjs_actions_drop_plugin.ts.html
│ │ │ │ │ ├── packages_@interactjs_actions_gesture_plugin.ts.html
│ │ │ │ │ ├── packages_@interactjs_actions_resize_plugin.ts.html
│ │ │ │ │ ├── packages_@interactjs_auto-start_base.ts.html
│ │ │ │ │ ├── packages_@interactjs_auto-start_InteractableMethods.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_BaseEvent.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_interactablePreventDefault.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_Interactable.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_InteractEvent.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_Interaction.ts.html
│ │ │ │ │ ├── packages_@interactjs_core_InteractStatic.ts.html
│ │ │ │ │ ├── packages_@interactjs_modifiers_aspectRatio.ts.html
│ │ │ │ │ ├── packages_@interactjs_modifiers_snap_edges.ts.html
│ │ │ │ │ ├── packages_@interactjs_pointer-events_PointerEvent.ts.html
│ │ │ │ │ ├── packages_@interactjs_reflow_plugin.ts.html
│ │ │ │ │ ├── scripts
│ │ │ │ │ │ ├── linenumber.js
│ │ │ │ │ │ └── prettify
│ │ │ │ │ │ ├── Apache-License-2.0.txt
│ │ │ │ │ │ ├── lang-css.js
│ │ │ │ │ │ └── prettify.js
│ │ │ │ │ └── styles
│ │ │ │ │ ├── jsdoc-default.css
│ │ │ │ │ ├── prettify.css
│ │ │ │ │ └── prettify-jsdoc.css
│ │ │ │ ├── interact.js
│ │ │ │ ├── interact.js.map
│ │ │ │ ├── interact.min.js
│ │ │ │ └── interact.min.js.map
│ │ │ ├── index.d.ts
│ │ │ ├── index.js
│ │ │ ├── index.js.map
│ │ │ ├── index.prod.js
│ │ │ ├── index.prod.js.map
│ │ │ ├── LICENSE
│ │ │ ├── package.json
│ │ │ └── README.md
│ │ ├── simple-keyboard
│ │ │ ├── build
│ │ │ │ ├── css
│ │ │ │ │ ├── index.css
│ │ │ │ │ └── index.css.map
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ └── index.js.map
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── package.json
│ │ │ └── README.md
│ │ └── simple-keyboard-layouts
│ │ ├── build
│ │ │ ├── index.js
│ │ │ ├── index.js.map
│ │ │ └── layouts
│ │ │ ├── arabic.js
│ │ │ ├── assamese.js
│ │ │ ├── belarusian.js
│ │ │ ├── burmese.js
│ │ │ ├── chinese.js
│ │ │ ├── czech.js
│ │ │ ├── english.js
│ │ │ ├── farsi.js
│ │ │ ├── french.js
│ │ │ ├── georgian.js
│ │ │ ├── german.js
│ │ │ ├── gilaki.js
│ │ │ ├── greek.js
│ │ │ ├── hebrew.js
│ │ │ ├── hindi.js
│ │ │ ├── italian.js
│ │ │ ├── japanese.js
│ │ │ ├── kannada.js
│ │ │ ├── korean.js
│ │ │ ├── nigerian.js
│ │ │ ├── norwegian.js
│ │ │ ├── polish.js
│ │ │ ├── russian.js
│ │ │ ├── sindhi.js
│ │ │ ├── spanish.js
│ │ │ ├── swedish.js
│ │ │ ├── thai.js
│ │ │ ├── turkish.js
│ │ │ ├── ukrainian.js
│ │ │ ├── urdu.js
│ │ │ └── uyghur.js
│ │ ├── LICENSE
│ │ ├── package.json
│ │ └── README.md
│ ├── package-lock.json
│ ├── packages.config
│ ├── popups
│ │ ├── CopyClipboard.aspx
│ │ ├── CopyClipboard.aspx.cs
│ │ ├── CopyClipboard.aspx.designer.cs
│ │ ├── CredentialsPrompt.aspx
│ │ ├── CredentialsPrompt.aspx.cs
│ │ ├── CredentialsPrompt.aspx.designer.cs
│ │ ├── EditHost.aspx
│ │ ├── EditHost.aspx.cs
│ │ ├── EditHost.aspx.designer.cs
│ │ ├── EditHostSession.aspx
│ │ ├── EditHostSession.aspx.cs
│ │ ├── EditHostSession.aspx.designer.cs
│ │ ├── EnterpriseChangePassword.aspx
│ │ ├── EnterpriseChangePassword.aspx.cs
│ │ ├── EnterpriseChangePassword.aspx.designer.cs
│ │ ├── FileStorage.aspx
│ │ ├── FileStorage.aspx.cs
│ │ ├── FileStorage.aspx.designer.cs
│ │ ├── OnScreenKeyboard.aspx
│ │ ├── OnScreenKeyboard.aspx.cs
│ │ ├── OnScreenKeyboard.aspx.designer.cs
│ │ ├── PasteClipboard.aspx
│ │ ├── PasteClipboard.aspx.cs
│ │ ├── PasteClipboard.aspx.designer.cs
│ │ ├── ShareSession.aspx
│ │ ├── ShareSession.aspx.cs
│ │ ├── ShareSession.aspx.designer.cs
│ │ ├── ShowDialog.aspx
│ │ ├── ShowDialog.aspx.cs
│ │ ├── ShowDialog.aspx.designer.cs
│ │ ├── VirtualKeyboard.aspx
│ │ ├── VirtualKeyboard.aspx.cs
│ │ └── VirtualKeyboard.aspx.designer.cs
│ ├── PrintDocument.aspx
│ ├── PrintDocument.aspx.cs
│ ├── PrintDocument.aspx.designer.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── SendInputs.aspx
│ ├── SendInputs.aspx.cs
│ ├── SendInputs.aspx.designer.cs
│ ├── src
│ │ ├── Clients
│ │ │ ├── ApplicationPoolClient.cs
│ │ │ ├── ConnectionClient.cs
│ │ │ ├── EnterpriseClient.cs
│ │ │ ├── FileStorageClient.cs
│ │ │ ├── MFAAuthenticationClient.cs
│ │ │ ├── PrinterClient.cs
│ │ │ └── RemoteSessionProcessClient.cs
│ │ ├── Controllers
│ │ │ ├── CaptureController.cs
│ │ │ ├── DisconnectionController.cs
│ │ │ └── SharingControler.cs
│ │ ├── Handlers
│ │ │ ├── RemoteSessionAudioSocketHandler.cs
│ │ │ ├── RemoteSessionEventSourceHandler.cs
│ │ │ ├── RemoteSessionLongPollingHandler.cs
│ │ │ └── RemoteSessionSocketHandler.cs
│ │ ├── JSKeyCodeToRDPScanCodeMapping.cs
│ │ ├── Models
│ │ │ └── SharingInfo.cs
│ │ ├── RemoteSessionAudio.cs
│ │ ├── RemoteSessionClient.cs
│ │ ├── RemoteSession.cs
│ │ ├── RemoteSessionImage.cs
│ │ ├── RemoteSessionManager.cs
│ │ ├── RemoteSessionMessage.cs
│ │ ├── RemoteSessionPipes.cs
│ │ ├── Services
│ │ │ ├── CaptureService.cs
│ │ │ ├── DisconnectionService.cs
│ │ │ └── SharingService.cs
│ │ └── WebInstaller.cs
│ ├── Web.Base.config
│ ├── Web.Debug.config
│ └── Web.Release.config
└── README.md
80 directories, 462 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论