.NET 一般处理程序中获取到的session值为空

.NET 一般处理程序中获取到的session值为空,第1张

.net的一般处理程序 .ashx的context对象默认是取不出session的值出来的。

要达到取出Session的效果,则需要让它实现System.Web.SessionState.IReadOnlySessionState接口(该接口没有任何方法实现,只是起到一个标识作用)

为了让所有的一般处理程序都能获取到Session值,并且能集中做一些控制管理(比如用户认证、权限控制等),我的策略是让一个抽象类实现IHttpHandler, IRequiresSessionState接口,然后让其他所有一般处理程序都继承该抽象类即可。

两个办法:

修复/重装Visual Studio的模板, 因为没有模板你没法新建.

这个方法比较直接, 有没有模板都行. 手动创建一个类, 实现IHttpHandler接口. 然后再Web.config中找到注册HttpHandler的节点. 把你的类注册进去. 就行了.

图片有点看不清楚 不过好像是json格式的

你把数据读取到datatable里面 然后把这个datatable转换成json字符串

具体的转换方法 代码如下:

public static string GetJson(DataTable dtb)

        {

            JavaScriptSerializer jss = new JavaScriptSerializer()

            System.Collections.ArrayList dic = new System.Collections.ArrayList()

            foreach (DataRow dr in dtb.Rows)

            {

                System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>()

                foreach (DataColumn dc in dtb.Columns)

                {

                    drow.Add(dc.ColumnName, dr[dc.ColumnName])

                }

                dic.Add(drow)

            }

            //序列化  

            return "({ \"data\":" + jss.Serialize(dic) + "})"

        }

需要引用using System.Web.Script.Serialization


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7814049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存