1.检测未登录跳转登录页面
重写AuthorizeAttribute类
这里主要用到两个方法:
HandleUnauthorizedRequest :处理未能授权的 HTTP 请求。
AuthorizeCore:通过上下文检查用户是否授权
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
namespace NewsPublish.Common
{
public class MvcAuthorizeAttribute : AuthorizeAttribute
{
//
// 摘要:
// 处理未能授权的 HTTP 请求。
//
// 参数:
// filterContext:
// 封装有关使用 System.Web.Mvc.AuthorizeAttribute 的信息。filterContext 对象包括控制器、HTTP 上下文、请求上下文、操作结果和路由数据。
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
var routeValue = new RouteValueDictionary {
{
"Controller", "Home"},
{
"Action", "Login"}
};
filterContext.Result = new RedirectToRouteResult(routeValue);
}
// 摘要:
// 重写时,提供一个入口点用于进行自定义授权检查。
//
// 参数:
// httpContext:
// HTTP 上下文,它封装有关单个 HTTP 请求的所有 HTTP 特定的信息。
//
// 返回结果:
// 如果用户已经过授权,则为 true;否则为 false。
//
// 异常:
// T:System.ArgumentNullException:
// httpContext 参数为 null。
protected override bool AuthorizeCore(HttpContextBase httpContext)
{