Как включить / выключить аутентификацию контроллера на основе некоторых условий - PullRequest
0 голосов
/ 22 марта 2019

У нас есть требование включать / отключать атрибут авторизации на основе некоторых настроек и требований разных сайтов. Для начала скажем, что конфигурация происходит из файла конфигурации.

Я попытался создать пользовательский атрибут и применить его к контроллеру, но не вызывается ни одно из перерасходов. Так что действительно ничего не могу сделать на этом конвейере.

public class ConditionalAuthorizationAttribute : AuthorizeAttribute
    {
        public override void OnAuthorization(HttpActionContext actionContext)
        {

        }

        protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
        {

        }

        protected override bool IsAuthorized(HttpActionContext actionContext)
        {
            return false;

        }

    }

Есть ли другой способ?

1 Ответ

0 голосов
/ 22 марта 2019

Не уверен, какую версию вы используете, но со следующими

 public class ConditionalAuthorizationAttribute : AuthorizeAttribute
    {
        public static bool FlipFlop = true;
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            FlipFlop = !FlipFlop;
            return FlipFlop;
        }
}

и

 [ConditionalAuthorization]
        public ActionResult Index()
        {
            return View();
        }

он будет чередоваться между аутентификацией и не аутентификацией

...