我有后端服务和前端服务。它们通过可信子系统模式进行通信。我想将用户名从前端转移到后端,并通过此处的用户名凭据执行此操作:
http://msdn.microsoft.com/en-us/library/ms730288.aspx
这在前端通过以下方式构建后端服务频道工厂的场景中不起作用:
channelFactory = new ChannelFactory<IBackEndService>(.....);
通过模具通道工厂创建新通道。我只能设置凭证一次,因为我得到一个例外,即用户名对象是只读的。
channelFactory.Credentials.Username.Username = "myCoolFrontendUser";
var channel = channelFactory.CreateChannel();
有没有办法只创建一次频道工厂,因为创建频道很昂贵,然后在创建频道时指定用户名凭据?
答案 0 :(得分:0)
我发现这是不可能的。我知道为每个标识用户的调用添加自定义标头值。您需要这样做,因为您不希望为每个可能会影响您的前端的用户创建工厂。除此之外,创建工厂也很昂贵。