可能重复:
如何在 wcf 中添加自定义肥皂标题?
这是场景:
我有一个 WCF 服务,我们称之为“BusinessService”。
我还有一个 Web 应用程序,它有一个该服务的客户端来发送请求。
我希望能够记录谁正在向我的服务发送更新;因此,我的 BusinessService 有一个名为 _userID 的私有字符串成员以及设置此 _userID 的方法,该类如下所示:
public class BusinessService : IBusinessService
{
private string _userID;
public void SetUserID(string userID)
{
_userID = userID;
}
public void UpdateCustomer(Customer customer)
{
// update customer here.
}
}
由于上述类的编写方式(因为为 WCF 服务创建一个自定义 custructor 并不容易,我可以在其中传递用户 ID),所以我的 Web 应用程序是这样编写的:
public class WebApp
{
private string _userID; // on page load this gets populated with user's id
// other methods and properties
public void btnUpdateCustomer_Click(object sender, EventArgs e)
{
Customer cust = new Customer();
// fill cust with all the data.
BusinessServiceClient svc = InstantiateWCFService();
svc.UpdateCustomer(cust);
svc.Close();
}
private BusinessServiceClient InstantiateWCFService()
{
BusinessServiceClient client = new BusinessServiceClient("EndPointName");
client.SetUserID(_userID);
return client;
}
}
查看存储的数据时,没有为用户 ID 保存任何内容。
是否有某种形式的设计模式或功能允许我记录谁在进行一些更改,而无需我的服务在每个方法调用中都需要用户 ID?