是否有可能阻止任何其他使用json結果,並只允許來自我的應用程序的請求? 當我們用這樣的:asp.net mvc jsonresult塊外部使用
Json(q, JsonRequestBehavior.AllowGet)
它允許從anywhere.is有任何認證存在以檢查需求是來自所有的請求?
是否有可能阻止任何其他使用json結果,並只允許來自我的應用程序的請求? 當我們用這樣的:asp.net mvc jsonresult塊外部使用
Json(q, JsonRequestBehavior.AllowGet)
它允許從anywhere.is有任何認證存在以檢查需求是來自所有的請求?
將[Authorize]屬性添加到要保護的方法或控制器。您可以指定組成員身份,並且需要登錄。
我認爲他意味着停止一個不是ajax請求的請求,但是不能從文本中清除。 – awrigley
雅,但操作引用身份驗證? –
我想你的意思:
如何只允許AJAX請求?
如果是這樣,查看以下博客帖子。它描述了創建可重複使用的過濾器:
代碼似乎很簡單,但我沒有用它自己:
public class AjaxOnlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(!filterContext.HttpContext.Request.IsAjaxRequest())
filterContext.HttpContext.Response.Redirect("/error/404");
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
}
}
,然後可以應用到控制器和操作:
[AjaxOnly]
public ActionResult AjaxActionMethod()
{
//....
}
該過濾器代碼假設在某些控制器上存在可通過以下路徑達到的操作:
/error/404
結果,我已經修改的代碼,併產生附加了任意錯誤路由的一種簡單的方法(以「/錯誤/ 404」的默認值):
public class AjaxOnlyAttribute : ActionFilterAttribute
{
public AjaxOnlyAttribute(){}
public AjaxOnlyAttribute(string ErrorRoute)
{
this.ErrorRoute = ErrorRoute;
}
string errorRoute = "/Error/404"; // default route
public string ErrorRoute
{
get { return errorRoute; }
set { errorRoute = value; }
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.Request.IsAjaxRequest())
filterContext.HttpContext.Response.Redirect(this.ErrorRoute); //
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
}
}
這
[AjaxOnly(ErrorRoute = "/MyArbitraryRoute/MyArbitraryParameter")
public ActionResult AjaxActionMethod()
{
//....
}
如果你只想要一個方法,通過自己的應用程序可以被調用,從公衆改變方法聲明爲內部:現在可以如下使用。這將限制方法的範圍從應用程序中調用。
btw ..它表明你只有33%的問題回答率。我會將你的一些老問題標記爲回答,以便人們更有可能在未來幫助你:) –