Это функция 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.
Тег 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]
, который будет использовать ваши пользовательские проверки.
ControllerActionInvoker анализирует атрибут и вызывает для него OnAuthorization ()
, когда приходит время проверить учетные данные.
Метод AuthorizationAttribute.OnAuthorization ()
в основном проверяет, является ли User.Identity.IsAuthenticated
истинным или нет. Это просто опирается на функциональность FormsAuthentication или любой другой схемы аутентификации, которую вы можете использовать.