下面是个简单的用Session判断未登陆的用户不能进VIP那个目录
public class MyHttpModule:IHttpModule
{
public void Dispose() { } public void Init(HttpApplication app) {
app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
} public void app_AcquireRequestState(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
string path = app.Request.RawUrl.ToUpper();
if (app.Session["UserIsValid"] == null || app.Session["UserIsValid"].ToString().Trim().Equals("1") == false) {
if (path.Contains("/VIP/")) {
app.CompleteRequest();
app.Response.Redirect(app.Request.ApplicationPath+"/"+"login.aspx");
}
}
}
}
错误提示:Session会话状态在此上下文中不可用。
在AcquireRequestState 应该能访问到的呀.
(另外,我重新建个网站,同样的代码,却可以运行)
不能运行的项目用了UrlRewriter.这应该没关吧.
请告诉我为什么会出现这种错误啊.
我改成app.context.Session["UserIsValid"] 还显示未将对象引用到实例上.
我又改成(string)app.Session["UserIsValid"] 错误依旧.........
public class MyHttpModule:IHttpModule
{
public void Dispose() { } public void Init(HttpApplication app) {
app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
} public void app_AcquireRequestState(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
string path = app.Request.RawUrl.ToUpper();
if (app.Session["UserIsValid"] == null || app.Session["UserIsValid"].ToString().Trim().Equals("1") == false) {
if (path.Contains("/VIP/")) {
app.CompleteRequest();
app.Response.Redirect(app.Request.ApplicationPath+"/"+"login.aspx");
}
}
}
}
错误提示:Session会话状态在此上下文中不可用。
在AcquireRequestState 应该能访问到的呀.
(另外,我重新建个网站,同样的代码,却可以运行)
不能运行的项目用了UrlRewriter.这应该没关吧.
请告诉我为什么会出现这种错误啊.
我改成app.context.Session["UserIsValid"] 还显示未将对象引用到实例上.
我又改成(string)app.Session["UserIsValid"] 错误依旧.........
解决方案 »
- 多服务器分流下载……(高手请进)
- 关于MsChart
- 部署的时候一个问题
- 为什么我.net项目查看时间长了,点到其他页面就无法连接呢
- 通过一个dropdownlist改变另一个dropdownlist的值时,如何让页面不刷新
- GOOGLE,BAIDU对伪装aspx的URL网页收录怎么样?和html相比!(顶者有分)
- 100分请教一个新手问题:类文件的调用
- [馨郁星愿]某个页面上,有10多个文本框,当他们填写的数据是一样的时候,有没有什么方法一下子全部填写上?
- 孟子e章怎么这两天都进不去啊?
- 有没有比较好的写存储过程的工具,在SQL Server里面写感觉很不爽!
- jquery 中的插件中,插件是什么东西呢?
- 大清早的来请教一些有关ajax和前台后台的关系
解决方法参考 http://www.eggheadcafe.com/articles/20030211.asp
这个方法里面还没有session
你需要继承一个接口才可以使用
提示 : 未将对象引用设置到对象的实例.你们可以说详细一点吗,我真搞不懂这个问题.
取决于你的UrlWriter组件的实现,这个异常的抛出很可能是这个组件在导航页面时产生的。
2.继承接口public class MyHttpModule:IHttpModule ,IRequiresSessionState
IRequiresSessionState
还是不行.
我现在随便开其他的页面,都提示,
if (app.Context.Session["UserIsValid"] == null || (string)app.Context.Session["UserIsValid"]=="1") 未将对象引用设置到对象的实例我断点看的时,第一次到断点没问题,但继续在此到断点时就提示上头的错误了.我很纳闷,同样的代码,我重新建的网站里,运行没任何问题.........这.........
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.SessionState;namespace HRManageWeb
{
public class CheckLogin:IHttpModule
{
#region IHttpModule 成员 public void Dispose()
{ } public void Init(HttpApplication context)
{
context.AcquireRequestState += new EventHandler(loginCheck_PostAcquireRequestState); } #endregion private void loginCheck_PostAcquireRequestState(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
if (app.Context.Handler is IRequiresSessionState || app.Context.Handler is IReadOnlySessionState)
{
if (app.Context.Session["LoginUser"] == null &&
!app.Context.Request.RawUrl.EndsWith("Default.aspx"))
app.Context.Response.Redirect("~/Default.aspx");
}
}
}
}