Он не определен, потому что он не инициализирован. Вы должны выполнить фильтрацию в перехватчиках ngOnInit и ngOnChanges или использовать метод set
_planMembers: Observable<PlanMember[]>;
@Input
set planMembers(planMembers: Observable<PlanMember[]]) {
this._planMembers = planMembers;
this._planMembers
.pipe(map( (members) => members.filter(m => m.userId !== 'Owner')
)).subscribe();
}
Это будет вызываться каждый раз, когда изменяется входное значение planMembers.
В первую очередь, сервис правильно отвечает на анонимный звонок, согласно спецификации.
Во-вторых, это невозможно. Когда Вы саморазмещаете свой сервис, и у Вас есть некоторая привязка http, WCF будет использовать a System.Net.HttpListener
экземпляр, чтобы смочь ответить на запросы HTTP (созданный в System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen
). Этому слушателю назвали метод HandleAuthentication
это называют путем, прежде чем любой Ваш пользовательский код назовут. Это ответственно за передачу обратно 401 ответа с проблемой (WWW - Проходят проверку подлинности). Нет ничего, что можно сделать об этом. Если бы существует, я хотел бы знать.
Таким образом, Вас оставляют со следующими опциями:
Я провел исследование в области этого в прошлом и нашел, что это не возможно через конфигурацию, если Вы не создаете 2 отдельных конечных точки (который не является тем, что Вы хотите). Это просто не поддерживается из поля WCF.
Однако WCF чрезвычайно настраиваем, и Вы могли, вероятно, сделать это путем записи пользовательского канала / привязка, которая сделает то, что Вы хотите. Я рекомендую смотреть на остальных Шахматный исходный код. Это должно запустить Вас.
Ваш лучший выбор состоит в том, чтобы реализовать роли по умолчанию через ролевого поставщика и позволить анонимным пользователям автоматически присоединиться к той роли. Затем или программно, или через инжекцию политики (аспектно-ориентированная) политика, набор так, чтобы определенный анонимный доступ быть позволенным через конкретную роль.
Что касается установки этого с помощью конфигурации, если бы это возможно, это было бы довольно трудно и вид "hacky".
Я так не думаю... Я просто писал, что необходимо создать для разделения конечной точки, когда я решил читать, Вы подвергаете сомнению снова и заметили последний оператор своего вопроса. Таким образом, ответ был бы не (что я знаю о),