Jquery / Ajax call / HTTP post getから情報を呼び出すだけで、WebメソッドまたはMVCアクションから情報が返されないようにするにはどうすればよいですか(アイデアがわかります)。
以前は、セッション変数またはビューステートを使用して、すべての呼び出しでこれを実行していましたが、これは引き続き可能です。これらの通話を安全にするための優れたデモを誰かに教えてもらえますか。いくつか見たことがありますが、なりすましや回避は簡単です。
ありがとう!
Jquery / Ajax call / HTTP post getから情報を呼び出すだけで、WebメソッドまたはMVCアクションから情報が返されないようにするにはどうすればよいですか(アイデアがわかります)。
以前は、セッション変数またはビューステートを使用して、すべての呼び出しでこれを実行していましたが、これは引き続き可能です。これらの通話を安全にするための優れたデモを誰かに教えてもらえますか。いくつか見たことがありますが、なりすましや回避は簡単です。
ありがとう!
AuthorizeAttribute
をアクションフィルターとして使用して、コントローラーへのアクセスをフィルター処理できます。アクセスを制限するコントローラーにこの属性を追加するだけです。msdnにはこの良い例があると思います:http://msdn.microsoft.com/en-us/library/dd381413(v = vs.90)
.aspx
この場合、Sessionを使用することもできます。
1.LoginFilterAttributeなどの名前のActionFilterAttributeクラスを作成します。
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.アクションで、この属性をアクションメソッドの前に配置します
[LoginFilter]
public ActionResult ActionNeedLogin()
{
return View();
}
または、属性をglobal.asaxに登録して、すべてのアクションが匿名でアクセスされないようにします。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new MyHandleErrorAttribute());
filters.Add(new LoginFilterAttribute());
}