【发布时间】:2011-11-12 00:02:09
【问题描述】:
我有这个自定义授权类来检查用户是否是管理员:
public class IsAdminAttribute : AuthorizeAttribute
{
private datacontext() db = new datacontext();
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (isAuthorized)
{
var currentUser = httpContext.User.Identity.Name;
return db.Users.Where(u => u.UserName == currentUser).Where(ut => ut.UserTypeID == 2).Count() == 1 ? true : false;
}
return isAuthorized;
}
}
在这里使用:
[IsAdmin]
public ActionResult CreateUser()
{
ViewBag.UserTypeID = new SelectList(db.UserTypes, "UserTypeId", "Name");
return View();
}
并且工作正常,但当用户未获得授权时,我会回到我的登录页面。我想要发生的是将用户重定向到某个地方并弹出错误消息。如何处理拒绝访问事件?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 attributes custom-attributes