将额外参数传递给 asmx 网络服务

本文关键字:asmx 网络服务 参数传递 | 更新日期: 2023-09-27 17:57:24

我有一个已经存在的Web服务,其中包含从应用程序调用的100多个函数。

我需要在每次调用时从应用程序到 Web 服务再添加一个参数 (UserId)。

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

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

将额外参数传递给 asmx 网络服务

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

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

无论如何,我认为需要做很多工作..

如果

尚未启用会话,并且 Web 服务在同一台服务器上运行。

[WebMethod(EnableSession = true)]

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

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

并像这样访问它,

 HttpContext.Current.Session["UserID"];