当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET笔记之CKEditor的使用方法

ASP.NET笔记之CKEditor的使用方法

2017年12月12日  | 移动技术网IT编程  | 我要评论

佛山c2000,深圳隆胸,吾爱书网

1、ckeditor原名fckeditor,著名的html编辑器,可以在线编辑html内容。自己人用ckeditor,网友用ubbeditor。

     配置参考文档,主要将ckeditor中的(adapters、images、lang、plugins、skins、themes、ckeditor.js、config.js、contents.css)解压到js目录,然后“显示所有文件”,将ckeditor的目录“包含在项目中”,在发帖页面引用ckeditor.js,然后设置多行文本框的class="ckeditor"(css强大)(服务端控件cssclass=" ckeditor ",客户端控件要设定cols、rows属性,一般不直接用html控件),代码中仍然可以通过textbox控件的text属性来访问编辑器内容。

      由于页面提交的时候asp.net会把富文本编辑器中的html内容当成攻击内容,因此需要在aspx中的page标签中设置 validaterequest="false" 来禁用攻击检测(2010中还要根据报错信息修改webconfig来禁用xss检测)。

       遇到错误如下:

    

      **修改webconfig来禁用xss检测

asp.net提交“<>”这些字符到aspx页面时,如果没有在文件头中加入“validaterequest="false"”这句话,就会出现出错提示:从客户端(<?xml version="...='utf-8'?><soap-env:envelope s...")中检测到有潜在危险的request.form 值。

如你是vs2008的用户,只要在aspx文件的开始部分,如下文所示处:

复制代码 代码如下:

<%@ page language="c#" codebehind="news_add.aspx.cs"   inherits="ckeditor.default" %>加上validaterequest="false" 即可。

但是如果是vs2010,仅仅这样还是不够的。还需要双击打开web.config,在<system.web></system.web>之间添加下面语句      

复制代码 代码如下:

<pages validaterequest="false" />
<httpruntime requestvalidationmode="2.0" />

2、ckfinder是一个ckeditor插件,用来为ckeditor提供文件的上传的功能。将bin\release下的ckfinder.dll添加到项目的引用;将core、ckfinder.js、ckfinder.html、config.ascx解压到ckfinder自己的目录。按照文档修改ckeditor的config.js,将上传的处理程序设定为ckfinder,注意路径的问题。
复制代码 代码如下:

ckeditor.editorconfig = function( config )
 {
     // define changes to default configuration here. for example:
     // config.language = 'fr';
     // config.uicolor = '#aadc6e';

     //改成ckfinder的绝对路径,从网站的本目录开始
     var ckfinderpath = "/admin/js";
     config.filebrowserbrowseurl = ckfinderpath + '/ckfinder/ckfinder.html';
     config.filebrowserimagebrowseurl = ckfinderpath + '/ckfinder/ckfinder.html?type=images';
     config.filebrowserflashbrowseurl = ckfinderpath + '/ckfinder/ckfinder.html?type=flash';
     config.filebrowseruploadurl = ckfinderpath + '/ckfinder/core/connector/aspx/connector.aspx?command=quickupload&type=files';
     config.filebrowserimageuploadurl = ckfinderpath + '/ckfinder/core/connector/aspx/connector.aspx?command=quickupload&type=images';
     config.filebrowserflashuploadurl = ckfinderpath + '/ckfinder/core/connector/aspx/connector.aspx?command=quickupload&type=flash';
 };

      使用测试,在插入超链接、插入图片、插入文件中都有“上传”l 因为上传文件是非常危险的动作,因此在文件上传的时候会进行权限校验。在config.ascx的checkauthentication方法中校验是否有权限上传,返回true表示有权限,否则没有权限,一般修改成判断用户是否登录,并且登录用户是有上传权限的用户,可以用session或者membership来做。

复制代码 代码如下:

public override bool checkauthentication()
     {
         // warning : do not simply return "true". by doing so, you are allowing
         // "anyone" to upload and list the files in your server. you must implement
         // some kind of session validation here. even something very simple as...
         //
         //        return ( session[ "isauthorized" ] != null && (bool)session[ "isauthorized" ] == true );
         //
         // ... where session[ "isauthorized" ] is set to "true" as soon as the
         // user logs on your system.
         object obj = session["已经登录"] = true;
         if (obj!=null&convert.toboolean(obj)==true)
         {
             return true;
         }
         else
         {
         return false;
         }
     }

思考:如何实现只有指定ip地址的用户才能上传?
复制代码 代码如下:

if (request.userhostaddress == "129.0.0.0.1") { return true; }

       在setconfig函数中设置上传文件夹的位置baseurl、缩略图的位置,每种类型数据的上传路径、允许上传的文件类型allowedextensions等。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网