2010-04-13 19 views
0

我有一个后端服务和前端服务。他们通过可信子系统模式进行通信。我想从前端传输用户名到后端,并通过用户名凭据这样做,因为在这里找到:为新频道设置用户名凭证而不创建新工厂

http://msdn.microsoft.com/en-us/library/ms730288.aspx

这并不在我们之情况在前端通过建立一个后端服务通道工厂工作:

channelFactory = new ChannelFactory<IBackEndService>(.....); 

通过模具通道工厂创建新通道。我一次只能设置凭证,之后我得到一个例外,即用户名对象是只读的。

channelFactory.Credentials.Username.Username = "myCoolFrontendUser"; 
var channel = channelFactory.CreateChannel(); 

有没有一种方法来创建通道工厂只有一个,因为这是昂贵的创建,然后创建一个通道时指定的用户名凭证的时间?

回答

0

我发现这是不可能的。我知道为标识用户的每个呼叫添加自定义标头值。您需要这样做,因为您不想为可能触及前端的每个用户创建工厂。除此之外,创建工厂很昂贵。