嫌い、AuthorizeAttributeは一度だけ呼び出されます
私は自分のカスタムathorizeattributeを作成しました。この属性を持つ最初のアクション結果の直後に1回だけ発生します。しかし、私がその同じ行動に進むことを試みると、それは機能します(セキュリティ違反につながる可能性があります)。
コントローラー:
[AuthenticationController.IsLoggedInAsHero]
public ActionResult Hero()
{
return View();
}
AuthenticationController:
public class IsLoggedInAsHero : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (!isAuthenticatedAsHero())
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary(new { controller = "Account", action = "Login" })
);
}
}
}
isAuthenticatedAsHero():
public static bool isAuthenticatedAsHero()
{
User user = new User();
user = udc.GetUserByCookie();
if (user.Hero== 1 && System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{ return true; }
else return false;
}
ヘルプは歓迎です!これはあなたのソリューションですが、私の知る限りが思うように、このメソッドをオーバーライドする必要がある場合
「同じ行動に出ようとするとうまくいく」とはどういう意味ですか?あなたが望むものではありませんか? –
ああ、申し訳ありませんが、私はそこにうんざりしていると思います。だから初めて私は拒否され、二度目には私は両方のアクセスが拒否されるべきであると(同じユーザー情報で)承認されます。 – Kraishan
isAuthenticatedAsHero()関数の実装に依存するように見えますか?あなたはこの機能を共有できますか? –