日期:2014-05-17  浏览次数:20479 次

基类获取当前用户问题
我用Session保存当前用户信息Session["UserInfo"]

BasePage类继承System.Web.UI.Page


用 
public TUser CurrentUser
  {
  get
  {
  return (TUser)Session["UserInfo"];
  }
  }
页面继承BasePage类
用这个属性获取当前获取。

现在我ajax请求到ahsx一般处理文件。想获取当前用户。应该这么设计呢?


------解决方案--------------------
那你直接用(TUser)Session["UserInfo"];获取不行?
------解决方案--------------------
1.要在一般处理程序中获取其他页面的session值,需要引用名空间:

using System.Web.SessionState;

2.然后继承一个接口:IRequiresSessionState,如图:



3.然后就可以获得session值了:

HttpContext context = new HttpContext();

string s =context.Session["Verifycode"].ToString();


------解决方案--------------------
有两种途径 一种就是ashx换成 aspx 在load方法结尾处 response.end()

还有就是 ashx 实现 session调用声明. 也即是IRequiresSessionState接口(没有任何方法的接口),
ashx就少了页面的复杂生命周期和一些属性.

其实 ashx用到了session 那就跟aspx没啥区别了.不纠结的话 就直接 aspx果断替换.