首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ueditor在上传文件时怎么获取用户的信息,用于判定权限

2013-10-11 
ueditor在上传文件时如何获取用户的信息,用于判定权限最近一个项目用了ueditor 感觉还不错, 但在使用文件

ueditor在上传文件时如何获取用户的信息,用于判定权限
最近一个项目用了ueditor 感觉还不错, 但在使用文件上传功能时,想通过获取session来获得当前用户的信息并判定是否具有上传权限,尝试了在ueditor文件上传的处理源文件uploader.cs中获取


HttpContext.Current.Session["userName"].ToString();



但获取失败了, 请教有没有遇到过类似问题的大牛,如何解决这个问题呢. ueditor?session
[解决办法]
如果是ashx,你需要继承IRequiresSessionState接口
[解决办法]
这和IRequiresSessionState接口 无关。。继承了之后在FF和chrome中也是不能直接获取到session的。正在研究怎么弄。有大神有经验的请一定告之。谢谢。
[解决办法]
引用:
这和IRequiresSessionState接口 无关。。继承了之后在FF和chrome中也是不能直接获取到session的。正在研究怎么弄。有大神有经验的请一定告之。谢谢。


那你为什么非得在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;
        }
    }

}

[解决办法]
我这样用的就是udedit,在imageUp.ashx下用HttpContext.Current.Session["user"].ToString()可以获取值,前提是继承IRequiresSessionState接口。

using System.Web.SessionState;
public class imageUp : IHttpHandler,IRequiresSessionState
{
……


}
[解决办法]
不需要Session集合。

你可以在用户登录时把用户id写到cookie中,然后你后台处理程序应该读取 context.Request.Cookies["uid"].Value


如果你觉得直接把用户的id保存到cookie中是“泄密”,那么你可以在后台数据库中随机产生一个Guid字符串方式“授权号”,并且把此授权号跟真实的uid对应关系保存到数据库中。这样用户就算是假冒登录,它也不知道应该假冒一个什么授权号才好。

热点排行