Как работает тег Authorize? - ASP.NET MVC

Это функция ECMAScript 6, называемая литералами шаблонов строк.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

Литералы шаблонов могут использоваться многострочные линии и могут использовать «интерполяцию» для вставки содержимого переменных :

var a = 123, str = `---
   a is: ${a}
---`;
console.log(str);

Будет выводиться:

---
   a is: 123
---

Что более важно, они могут содержать не только имя переменной, но и любое выражение Javascript:

var a = 3, b = 3.1415;

console.log(`PI is nearly ${Math.max(a, b)}`);

Поддерживается с Firefox 34 и Chrome 41.

30
задан Peter Mortensen 22 October 2017 в 20:42
поделиться

2 ответа

Тег Authorize использует все встроенные проверки членства из ASP.NET. ОЧЕНЬ легко использовать свой собственный тег. Например:

public class MyAuthorize : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null) throw new ArgumentNullException("httpContext");

        // Make sure the user is authenticated.
        if (httpContext.User.Identity.IsAuthenticated == false) return false;

        // Do you own custom stuff here
        bool allow = CheckIfAllowedToAccessStuff();

        return allow;
    }
}

Затем вы можете использовать тег [MyAuthorize] , который будет использовать ваши пользовательские проверки.

26
ответ дан 27 November 2019 в 18:34
поделиться

ControllerActionInvoker анализирует атрибут и вызывает для него OnAuthorization () , когда приходит время проверить учетные данные.

Метод AuthorizationAttribute.OnAuthorization () в основном проверяет, является ли User.Identity.IsAuthenticated истинным или нет. Это просто опирается на функциональность FormsAuthentication или любой другой схемы аутентификации, которую вы можете использовать.

16
ответ дан 27 November 2019 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: