【问题标题】:Calling WebService using Service Reference and Maintain Session使用服务引用调用 WebService 并维护会话
【发布时间】:2009-10-19 10:48:59
【问题描述】:

我有一个从我的 ASP.NET 网站使用的 asp.net 网络服务。我可以从原始 Javascript 或 jQuery 调用它来发布/获取数据。网络服务通过会话启用,因此只有授权用户才能访问数据。

        [WebMethod(EnableSession = true)]
        public WS_ServiceResponse SetAccountName(string account, string name)
        {
            WS_ServiceResponse osr = new WS_ServiceResponse();
            WS_ServiceResponse sessionCheck = CheckSession(Session);
            if (sessionCheck.result == WS_ServiceResponseResult.fail)
                return sessionCheck;

            osr.result = WS_ServiceResponseResult.success;
            osr.data = "";
            bool success = AccountController.SetAccountInfo(account, name);
            if (success)
            {
                osr.result = WS_ResponseResult.fail;
            }
            return osr;
        }

现在我必须创建一个桌面客户端来使用该服务。我可以添加 ServiceReference 来做到这一点。但是我如何保持与该服务的会话?我在调用 web 服务时得到了 result=fail。谁能告诉如何在 Windows 窗体应用程序的 web 服务参考中管理会话。

【问题讨论】:

    标签: c# web-services service-reference


    【解决方案1】:

    您应该使用CookieContainer。检查this 发布,它显示了一个示例。 要在您的 WinForms/WPF 项目中添加 Web 服务引用,this 帖子很有帮助。

    【讨论】:

    • 非常感谢您的链接。虽然这对我来说需要一点工作。首先在 Visual Studio 2008 中没有直接的“添加 Web 引用”链接。我首先使用了“添加服务引用”,这个东西没有 cookiecontainer。我发现这篇文章很有用blogs.msdn.com/kaevans/archive/2008/03/18/…。现在它的工作。
    • 我已将您的链接添加到我的答案中,以便为未来的读者提供更完整的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 2023-04-09
    • 2013-10-06
    • 2018-10-03
    相关资源
    最近更新 更多