BizTalk Сервис Авторизация - PullRequest
0 голосов
/ 07 ноября 2011

Я пытаюсь реализовать авторизацию, как описано в Seroter здесь (раздел авторизации сервиса). Я GAC-библиотека, изменил machine.config и смог выбрать пользовательское поведение в Выберите расширение поведения диалог. Но я не могу установить значение «WindowsGroup», оно дает мне «Ссылка на объект не установлена ​​на экземпляр объекта», и я не могу понять, почему. Кто-нибудь реализовывал авторизацию сервиса?

1 Ответ

1 голос
/ 07 ноября 2011

Наконец-то решили эту проблему.

using System;
using System.Configuration;
using System.ServiceModel.Configuration;

namespace Esb.Service.Authorization
{
    public class EsbBehaviorElement : BehaviorExtensionElement
    {
        private const string _windowsgroupIndexName = "windowsgroup";

        public EsbBehaviorElement()
        {
            if (!base.Properties.Contains(_windowsgroupIndexName))
            {
                base.Properties.Add(new ConfigurationProperty(_windowsgroupIndexName, typeof(string)));
            }
        }

        [ConfigurationProperty("WindowsGroup", IsRequired = false, DefaultValue = "")]
        public string WindowsGroup
        {
            get
            {
                return (string)base[_windowsgroupIndexName];
            }
            set
            {
                base[_windowsgroupIndexName] = value;
            }
        }

        public override Type BehaviorType
        {
            get
            {
                return typeof(EsbServiceBehavior);
            }
        }

        protected override object CreateBehavior()
        {
            return new EsbServiceBehavior(WindowsGroup);
        }
    }
}

Я не знаю, почему решение Seroter работает без ctor, где нужно добавить свойство "windowsgroup" к базовому набору свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...