0

我如何确保任何人从 Jquery/Ajax 调用/HTTP post get 调用它时不会从 webmethod 或 mvc 操作返回信息(你明白了)。

以前我会在每次调用时使用会话变量或视图状态来执行此操作,这仍然可能吗?任何人都可以向我指出有关使这些调用安全的任何好的演示,我见过一些,但它们很容易被欺骗或解决。

谢谢!

4

2 回答 2

0

您可以将AuthorizeAttribute用作操作过滤器来过滤对控制器的访问。您可以将此属性添加到要限制访问的控制器中。我认为 msdn 有一个很好的例子:http: //msdn.microsoft.com/en-us/library/dd381413 (v=vs.90).aspx

于 2012-06-08T18:33:16.127 回答
-2

在这种情况下,您也可以使用 Session。
1. 创建一个名为的ActionFilterAttribute 类,例如LoginFilterAttribute。

public sealed class LoginFilterAttribute:ActionFilterAttribute
{   
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //check if the user is logged in
        if (Session["UserSessionKey"]==null)
           //redirect to login page or do nothing
        else
           //return data or do something else

    }
}

2.在你的action中,把这个属性放在action方法之前

[LoginFilter]
public ActionResult ActionNeedLogin()
{            
    return View();
}

或者,在 global.asax 中注册属性以防止匿名访问的所有操作。

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new MyHandleErrorAttribute());
    filters.Add(new LoginFilterAttribute());
}
于 2012-06-12T13:03:58.950 回答