public class AuthenticationFilter : FilterAttribute
{
//
// GET: /AuthenticationFilter/ public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//如果当前用户没有登录,则取消以后的操作,重新指定一个ActionResult
if (!filterContext .HttpContext .User .Identity.IsAuthenticated )
{
filterContext.
filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary (new { action = "Login" }));
}
} }
按理说filterContext应该有Cancel属性,为什么调不出来呢,我的是ASP.NET MVC 2
{
//
// GET: /AuthenticationFilter/ public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//如果当前用户没有登录,则取消以后的操作,重新指定一个ActionResult
if (!filterContext .HttpContext .User .Identity.IsAuthenticated )
{
filterContext.
filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary (new { action = "Login" }));
}
} }
按理说filterContext应该有Cancel属性,为什么调不出来呢,我的是ASP.NET MVC 2
解决方案 »
- DevExpress的ProgressBarControl问题
- 请教一个javascript 函数的意思
- 在asp 中,用户的留言表,每个用户可以多次留言,但是只能读出一条,如何读出指定用户的所有留言呢?
- 怎么把两个datatable合并,使dt1(有a,b两列)和dt2(有c,d两列)合并为dt3(有a,b,c,d4列)
- 生成静态页面后的问题
- 请问各位大哥,如何在DataList的EditItemTemplate项里面实现两个DropDownList的连动(急)
- 进行一个比较耗时的操作的时候,如何能在客户端给出一个gif动画,类似于进度条
- TreeView控件数据类型转换的问题。
- 紧急!关于根据给定条件,动态生成弹出式窗口的问题
- 高分求解:框架之间相互传送变量所产生的时间查问题
- FCK文件加载配置文件出错
- 救命啊---为什么用.net发送的邮件没有背景图片啊
这个下面包含的内容多了。
1、直接重载当前的控制器就可以。整个站点需要,当然可以创建一个Base控制器。protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var timestamp = filterContext.HttpContext.Timestamp;
var timeout = filterContext.HttpContext.Session.Timeout; var userSessionID = Session["UserSessionID"];
var user = Session["User"];
if (userSessionID == null || user == null)
{
Logon(filterContext);
}
} private void Logon(ActionExecutingContext filterContext )
{
RouteValueDictionary dictionary = new RouteValueDictionary
(new
{
controller = "Account",
action = "Logon",
returnUrl = filterContext.HttpContext.Request.RawUrl
});
filterContext.Result = new RedirectToRouteResult(dictionary);
}
}
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext httpcontext = HttpContext.Current; //获取当前的 HttpSessionState
var userSessionID = httpcontext.Session["UserSessionID"];
if (userSessionID == null)
{
Logon(filterContext);
}
if( httpcontext.Session != null )
{
//确认Session是否已建立
if( httpcontext.Session.IsNewSession )
{
//確認是否已存在cookies
String sessioncookie = httpcontext.Request.Headers[ "Cookie" ];
if( (sessioncookie != null ) && ( sessioncookie.IndexOf( "ASP.NET_SessionId" ) >= 0 ))
{
Logon( filterContext );
}
}
}
base.OnActionExecuting( filterContext );
} /// <summary>
/// 路由到登录页面
/// </summary>
/// <param name="filterContext"></param>
private void Logon(ActionExecutingContext filterContext )
{
RouteValueDictionary dictionary = new RouteValueDictionary
(new
{
controller = "Account",
action = "Logon",
returnUrl = filterContext.HttpContext.Request.RawUrl
});
filterContext.Result = new RedirectToRouteResult(dictionary);
}
}