Смешанная аутентификация WCF WebHttp (основной И анонимный)

Он не определен, потому что он не инициализирован. Вы должны выполнить фильтрацию в перехватчиках 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.

8
задан TheSoftwareJedi 17 October 2008 в 18:11
поделиться

4 ответа

В первую очередь, сервис правильно отвечает на анонимный звонок, согласно спецификации.

Во-вторых, это невозможно. Когда Вы саморазмещаете свой сервис, и у Вас есть некоторая привязка http, WCF будет использовать a System.Net.HttpListener экземпляр, чтобы смочь ответить на запросы HTTP (созданный в System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen). Этому слушателю назвали метод HandleAuthentication это называют путем, прежде чем любой Ваш пользовательский код назовут. Это ответственно за передачу обратно 401 ответа с проблемой (WWW - Проходят проверку подлинности). Нет ничего, что можно сделать об этом. Если бы существует, я хотел бы знать.

Таким образом, Вас оставляют со следующими опциями:

  • две конечных точки
  • настройте свои клиенты для знания учетных данных по умолчанию
  • измените свои клиенты, таким образом, они могут ответить на вызов
1
ответ дан 6 December 2019 в 04:41
поделиться

Я провел исследование в области этого в прошлом и нашел, что это не возможно через конфигурацию, если Вы не создаете 2 отдельных конечных точки (который не является тем, что Вы хотите). Это просто не поддерживается из поля WCF.

Однако WCF чрезвычайно настраиваем, и Вы могли, вероятно, сделать это путем записи пользовательского канала / привязка, которая сделает то, что Вы хотите. Я рекомендую смотреть на остальных Шахматный исходный код. Это должно запустить Вас.

0
ответ дан 6 December 2019 в 04:41
поделиться

Ваш лучший выбор состоит в том, чтобы реализовать роли по умолчанию через ролевого поставщика и позволить анонимным пользователям автоматически присоединиться к той роли. Затем или программно, или через инжекцию политики (аспектно-ориентированная) политика, набор так, чтобы определенный анонимный доступ быть позволенным через конкретную роль.

Что касается установки этого с помощью конфигурации, если бы это возможно, это было бы довольно трудно и вид "hacky".

0
ответ дан 6 December 2019 в 04:41
поделиться

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

-2
ответ дан 6 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

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