По каким-либо причинам моя аннотация никогда не вызывается, какие-либо решения?
Это своего рода недопонимание атрибутов. Фактически существуют атрибуты для добавления метаданных к определенным частям вашего кода (классам, свойствам, полям, методам, параметрам и т. Д.). Компилятор берет информацию из атрибута и заполняет ее в IL, который он выплевывает, когда закончил есть ваш источник код.
Атрибуты сами по себе ничего не делают, если кто-то их не потребляет. То есть кто-то в какой-то момент должен обнаружить ваш атрибут, а затем принять меры по нему. Они сидят в IL вашей сборки, но они ничего не делают, если кто-то не находит их и не действует на них. Только когда они это сделают, будет создан экземпляр атрибута. Типичный способ сделать это - использовать отражение.
Чтобы получить атрибуты во время выполнения, вы должны сказать что-то вроде
var attributes = typeof(Foo)
.GetMethod("Window_Loaded")
.GetCustomAttributes(typeof(AuthenticationRequired), true)
.Cast<AuthenticationRequired>();
foreach(var attribute in attributes) {
Console.WriteLine(attribute.ToString());
}