我正在尝试实施授权,因为Seroter描述了here(服务授权部分)。我已经GAC了解了库,更改了machine.config
并能够在选择行为扩展对话框中选择自定义行为。但是我无法设置'WindowsGroup'值,它给了我“对象引用未设置为对象的实例”,我无法理解为什么。有没有人实施服务授权?
答案 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”属性添加到属性的基本集合中。