1

質問を編集しました。認証を実装するために使用したコードは次のとおりです。

AuthorizeAttributeを継承するクラス。

public class FBxAuth : AuthorizeAttribute
    {

        public FBxAuth()
            : base()
        {

        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            bool isAuthenticated = false;
            if (httpContext.User.Identity.IsAuthenticated)
            {
                // here I will check users exists in database.
                // if yes , isAuthenticated=true;
            }
            return isAuthenticated;
        }
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            filterContext.HttpContext.Response.Redirect("/home/Register/?returningURL=" +
                filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.Url.ToString()));

        }

    }

私のコントローラー

[FBxAuth]
        public ActionResult Index()
        {
            teamDA = new TeamDataAccess();
            var teams = teamDA.TeamsList();

            return View(teams);
        }
  1. 私は正しい方法に従っていますか?

2.認証されたユーザーがコントローラーでアクションを実行する権限を持っていることを確認するにはどうすればよいですか。例:delete。 www.abc.com/teams/5/削除は削除を実行しますUIから削除リンクを非表示にできます。しかし、ユーザーが上記のURLを指定して削除しようとした場合、どうすればユーザーがアクションを実行できないようにすることができますか?

4

1 に答える 1

0

インデックスアクションで行ったのと同じことを行う必要があります。認証されたユーザーにのみアクセスを許可するアクションに、[FBxAuth]または共通属性を追加するだけです。[Authorize]

于 2012-07-25T15:07:14.927 に答える