- 配置參考文檔,主要將ckeditor中的(adapters、images、lang、plugins、skins、themes、ckeditor.js、config.js、contents.css)解壓到js目錄,而後「顯示全部文件」,將ckeditor的目錄「包含在項目中」,在發帖頁面引用ckeditor.js,而後設置多行文本框的class="ckeditor"(CSS強大)(服務端控件CssClas=" ckeditor ",客戶端控件要設定cols、rows屬性,通常不直接用html控件),代碼中仍然能夠經過TextBox控件的Text屬性來訪問編輯器內容。
- 因爲頁面提交的時候asp.net會把富文本編輯器中的html內容當成攻擊內容,所以須要在aspx中的Page標籤中設置 ValidateRequest="false" 來禁用攻擊檢測(2010中還要根據報錯信息修改WebConfig來禁用XSS檢測)。
- CKFinder是一個CKEditor插件,用來爲CKEditor提供文件的上傳的功能。將bin\Release下的CKFinder.dll添加到項目的引用;將core、ckfinder.js、ckfinder.html、config.ascx解壓到CKFinder本身的目錄。按照文檔修改CKEditor的config.js,將上傳的處理程序設定爲CKFinder,注意路徑的問題。
- 使用測試,在插入超連接、插入圖片、插入文件中都有「上傳」
- 由於上傳文件是很是危險的動做,所以在文件上傳的時候會進行權限校驗。在config.ascx的CheckAuthentication方法中校驗是否有權限上傳,返回true表示有權限,不然沒有權限,通常修改爲判斷用戶是否登陸,而且登陸用戶是有上傳權限的用戶,能夠用Session或者Membership來作。思考:如何實現只有指定IP地址的用戶才能上傳?
- 在SetConfig函數中設置上傳文件夾的位置BaseUrl、縮略圖的位置,每種類型數據的上傳路徑、容許上傳的文件類型AllowedExtensions等。
爲了使用ckfinder還須要在vs2010的web.config中加入
<!--
爲了使用ckeditor
-->
<
pages
validateRequest
=
"
false
"
/>
<
httpRuntime
requestValidationMode
=
"
2.0
"
/>
<!--
爲a了使用ckeditor
-->
以及
- 使用ckfinder的配置,在ckeitor的config.js文件中加入以下
- 還須要複製出「CKFinder.dll」添加到項目的引用中
var
ckfinderPath =
"/SCDAadmin/js"
;
config.filebrowserBrowseUrl = ckfinderPath +
'/ckfinder/ckfinder.html'
;
config.filebrowserImageBrowseLinkUrl = ckfinderPath +
'/ckfinder/ckfinder.html?Type=Images'
;
config.filebrowserFlashBrowseLinkUrl = 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'
;
這時候仍是有安全限制
打開ckfinder的config.ascx
修改裏面的
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[
"admin_login"
];
if
(obj !=
null
&&
Convert
.ToBoolean(obj) ==
true
)
return
true
;
else
return
false
;
return
false
;
}