BizTalk服务授权

时间:2011-11-07 13:48:01

标签: wcf authentication biztalk

我正在尝试实施授权,因为Seroter描述了here(服务授权部分)。我已经GAC了解了库,更改了machine.config并能够在选择行为扩展对话框中选择自定义行为。但是我无法设置'WindowsGroup'值,它给了我“对象引用未设置为对象的实例”,我无法理解为什么。有没有人实施服务授权?

1 个答案:

答案 0 :(得分:1)

终于解决了这个问题。

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”属性添加到属性的基本集合中。