最近一个项目用了ueditor 感觉还不错, 但在使用文件上传功能时,想通过获取session来获得当前用户的信息并判定是否具有上传权限,尝试了在ueditor文件上传的处理源文件uploader.cs中获取HttpContext.Current.Session["userName"].ToString();但获取失败了, 请教有没有遇到过类似问题的大牛,如何解决这个问题呢.ueditor session
解决方案 »
- 急!急!在哪能找到project Dependencies 选项卡,我怎么找不到啊?
- 网站服务器怎么配置
- ds.Tables["表名"].Rows[][].ToString()读取dataset数据时报错!
- asp.net listbox控件怎么实现选中删除的记录?
- datagrid中的dropdownlist变化引起其他cell值得变化,求解
- ------关于手动绑定DataGrid控件的问题----
- 请问高手如何做一个网络视频播放器
- 我系统是2003server。装了.net以后,发现如下错误。不知道如何解决
- 为什么ListBox1_SelectedIndexChanged没反应?马上结帖!谢谢
- document.coolie是什么意思?高手求救,在线等待!
- 有加密函数,求解密函数。
- DynaTree返回List的问题
那你为什么非得在upload.cs里判断呢?你可以在imageUp.ashx里判断啊<%@ WebHandler Language="C#" Class="imageUp" %>using System;
using System.Web;
using System.IO;
using System.Collections;
using System.Web.SessionState;
public class imageUp : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; //上传配置
int size = 2; //文件大小限制,单位MB //文件大小限制,单位MB
string[] filetype = { ".gif", ".png", ".jpg", ".jpeg", ".bmp" }; //文件允许格式 string username = context.Session["userName"].ToString();
if (!HasRight(username))
{
//提示没有权限
}
//上传图片
Hashtable info = new Hashtable();
Uploader up = new Uploader(); string pathbase = null;
int path = Convert.ToInt32(up.getOtherInfo(context, "dir"));
if (path == 1)
{
pathbase = "upload/"; }
else
{
pathbase = "upload1/";
} info = up.upFile(context, pathbase, filetype, size); //获取上传状态 string title = up.getOtherInfo(context, "pictitle"); //获取图片描述
string oriName = up.getOtherInfo(context, "fileName"); //获取原始文件名
HttpContext.Current.Response.Write("{'url':'" + info["url"] + "','title':'" + title + "','original':'" + oriName + "','state':'" + info["state"] + "'}"); //向浏览器返回数据json数据
} public bool IsReusable
{
get
{
return false;
}
}}
那你为什么非得在upload.cs里判断呢?你可以在imageUp.ashx里判断啊
string username = context.Session["userName"].ToString();
报告大神,我就是直接在ashx中执行的呀。这句代码,在ff中,直接不能执行,未将对象引用到对象的实例。。据传在IE下可以,未测试。我已经试了N遍了。。context.Session["userName"].ToString();和HttpContext.Current.Session["userName"].ToString();都是不行的哦。然后查看此时的seesionID,和我浏览器上保存的根本不同。cookie和session都是无效的。目前之能通过URL传值来暂时回避这个问题。
string username=context.session["username"].tostring()
}这么写才对
public class imageUp : IHttpHandler,IRequiresSessionState
{
……
}
如果你觉得直接把用户的id保存到cookie中是“泄密”,那么你可以在后台数据库中随机产生一个Guid字符串方式“授权号”,并且把此授权号跟真实的uid对应关系保存到数据库中。这样用户就算是假冒登录,它也不知道应该假冒一个什么授权号才好。
还有这种事?那么你的这个所谓 ueditor 是个 ActiveX插件?有这种bug的东西就不要用了。
IE10\IE9\IE8 火狐最新版,google最新版都没问题。