在一个网站中用到这个编辑器,可老是在上传或是浏览服务器目录的时候出现提示“请先登陆。”,试过了好多版本都是这样,甚至是直接把别人的项目中的拿过来用也不行,在网上查了一天也没有找到解决办法。
于是就想看看FCKeditor到底是如何来验证是否登陆的,是用Forms 还是用Session的方式,或是别的,但下了几个版本都没有找到相关的解决办法。最后下载了最新的版本的源码(FCKeditor.Net_2.6.3),经研究发现,在新版里已经加入了用户验证的部份,能轻松实现和自己站点验证的同步。因看到有很多的朋友也困惑于这个问题,所以我把方法简要的写出来,这样大家就不用和我一样为了这个问题浪费一天的时间了,当然如果你有更好的办法,可以分享出来。:)
方法:
下载所需的编辑器文件:FCKeditor_2.6.3.zip,和下载FCKeditor.Net_2.6.3.zip 下载地址: http://www.FCKeditor.net
1、安装:
这部份大家应该已经很熟悉,但还是说一下吧。
将FCKeditor.Net_2.6.3.zip中的用于2.0的DLL 加载到项目中,可以添加引用,也可以直接添加到工具箱中。
把FCKeditor拷贝到网站根目录。
在 fckeditor/fckconfig.js中 将程序使用的脚本类型改成 aspx
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
在web.config 中添加目录的配置:
<appSettings>
<add key="FCKeditor:BasePath" value="~/fckEditor/"/>
<add key="FCKeditor:UserFilesPath" value="/fcktest/UserFiles" />
</appSettings>
在UserFiles 文件夹中加上 file,image 这两个文件夹,如果你还要上传Flash 和其他媒体的功能的话,还要加上相应的目录 Flash, Media,
然后建一个页面,放入FCKeditor控件 ,运行,应该就可以正常看到编辑器了,点一下图片上传的那个按钮,如果没有出现要登录的对话框,那恭喜你,可以用不做下面的修改了。
2、设置登录验证:
在fckeditor\editor\filemanager\connectors\aspx目录下面有一个 config.ascx 用户控件。打开它,我们可以看到有一个:private bool CheckAuthentication(){return false;} 的方法,对了就是这个方法在验证你是否登录,
如果你是使用的Forms验证方法的话,请修改成:return Context.User.Identity.IsAuthenticated; ,如果是使用 Session的话,就判断相应的 Session就行了。使用 Cookie的也一样。
至此已经大功告成了。
没有什么技术含量,写成来只是方便大家,不要象我这样花这么多时间在这个问题上抓狂。
做了一个demo大家可以试一下,可下载。
地址: http://202.103.27.3:20081/default.aspx