将额外参数传递给asmx webservice

时间:2015-06-22 07:04:41

标签: c# web-services asmx

我有一个已经存在的webservice,从应用程序中调用了100个函数。

我需要在每次调用时从应用程序向webservice添加一个参数(UserId)。

我必须手动编辑应用程序的所有函数和调用的签名才能实现它。

是否有更好/替代的方式在每次通话时将我的用户ID发送到网络服务?

2 个答案:

答案 0 :(得分:0)

100s的方法有不同的方法签名。 如果方法签名共享同一个对象,则可以向该对象添加额外参数,而不需要至少更改这些方法的参数。

否则,必须更改SOAP Header并在每个请求的标头中附加“UserId”。

我认为我需要做很多工作..

答案 1 :(得分:0)

如果您尚未启用会话且Web服务在同一服务器上运行。

[WebMethod(EnableSession = true)]

您可以将其存储在会话中,

Session["UserID"] = User.Identity.GetUserId<int>();

并像这样访问它,

 HttpContext.Current.Session["UserID"];