我有一个已经存在的webservice,从应用程序中调用了100个函数。
我需要在每次调用时从应用程序向webservice添加一个参数(UserId)。
我必须手动编辑应用程序的所有函数和调用的签名才能实现它。
是否有更好/替代的方式在每次通话时将我的用户ID发送到网络服务?
答案 0 :(得分:0)
100s的方法有不同的方法签名。 如果方法签名共享同一个对象,则可以向该对象添加额外参数,而不需要至少更改这些方法的参数。
否则,必须更改SOAP Header并在每个请求的标头中附加“UserId”。
我认为我需要做很多工作..
答案 1 :(得分:0)
如果您尚未启用会话且Web服务在同一服务器上运行。
[WebMethod(EnableSession = true)]
您可以将其存储在会话中,
Session["UserID"] = User.Identity.GetUserId<int>();
并像这样访问它,
HttpContext.Current.Session["UserID"];