Im sử dụng tên lớp RightCheckerAttribute để kiểm tra sự cho phép người sử dụng trong ứng dụng MVC3 ... Vì vậy, các lớp RightCheckerAttribute là như thế này ...Sử dụng bộ lọc hành động trên MVC C# sử dụng chuỗi truy vấn
public bool isAdmin { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContextBase context = filterContext.HttpContext;
bool result = Convert.ToBoolean(context.Request.QueryString["isAdmin"].ToString());
if (isAdmin != result)
{
RouteValueDictionary redirecttargetDictionary = new RouteValueDictionary();
redirecttargetDictionary.Add("action", "NoPermission");
redirecttargetDictionary.Add("controller","Singer");
filterContext.Result = new RedirectToRouteResult(redirecttargetDictionary);
}
//base.OnActionExecuting(filterContext);
}
Vì vậy, trong phương pháp tôi áp dụng này có người đứng đầu là ..
[RightChecker (isAdmin=true)]
Im Thực thi phương pháp này như thế này ..
http://localhost:5576/Singer/DeleteSinger?isAdmin=true
vấn đề đặt ra là liệu tôi đang đi đúng hay sai ... Tôi đã gây biến như sai ... Và tôi nhận được:
ngoại lệ [Null Object tài liệu tham khảo] ...
Dòng nào cho bạn ngoại lệ? – gideon
bool result = Convert.ToBoolean (context.Request.QueryString ["isAdmin"]. ToString()); dòng cung cấp một ngoại lệ –
Kiểm tra chuỗi truy vấn để xác định xem người dùng có phải là quản trị viên không an toàn hay không. Bạn có thể muốn lưu trữ nó trong phiên làm việc. –