Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET的webservice中使用会话状态_C#_Asp.net_Web Services - Fatal编程技术网

C# 在ASP.NET的webservice中使用会话状态

C# 在ASP.NET的webservice中使用会话状态,c#,asp.net,web-services,C#,Asp.net,Web Services,登录时,我将用户名保存到会话[用户名]。在下一页,我正在进行一个web服务调用。在web服务中,我想访问此会话 如何做到这一点 我甚至尝试将webmethod的EnableSession设置为true。但是,仍然在执行会话[username]时,将显示设置为null的实例异常 请帮忙。你不应该那样做 Web服务是通过网络在两个电子设备之间进行通信的一种方法。这两个设备不共享会话或任何其他服务器信息,除了那些由web服务签名明确定义的信息 您必须记住,任何设备都可以访问您的web服务,而且这种访问

登录时,我将用户名保存到会话[用户名]。在下一页,我正在进行一个web服务调用。在web服务中,我想访问此会话

如何做到这一点

我甚至尝试将webmethod的EnableSession设置为true。但是,仍然在执行会话[username]时,将显示设置为null的实例异常

请帮忙。

你不应该那样做

Web服务是通过网络在两个电子设备之间进行通信的一种方法。这两个设备不共享会话或任何其他服务器信息,除了那些由web服务签名明确定义的信息

您必须记住,任何设备都可以访问您的web服务,而且这种访问不应该取决于它所使用的语言

因此,您应该在回复中添加所有希望通过共享的信息。

您不应该这样做

Web服务是通过网络在两个电子设备之间进行通信的一种方法。这两个设备不共享会话或任何其他服务器信息,除了那些由web服务签名明确定义的信息

您必须记住,任何设备都可以访问您的web服务,而且这种访问不应该取决于它所使用的语言

因此,您应该在回复中添加所有希望通过共享的信息。

您可以在

你可以在


该web服务是否存在于同一应用程序中? 您是如何执行登录的,您是否使用会员资格提供商来执行登录

也许你可以从中获取用户名

HttpContext.Current.User.Identity.Name

与您登录的用户对应的IPrincipal对象是web服务存在于同一应用程序中吗? 您是如何执行登录的,您是否使用会员资格提供商来执行登录

也许你可以从中获取用户名

HttpContext.Current.User.Identity.Name

与登录用户对应的IPrincipal对象?

Hi,Web服务是否与asp.net应用程序位于同一应用程序中?Hi,Web服务是否与asp.net应用程序位于同一应用程序中?尽管我同意您不应使用会话在UI和Web服务之间进行通信,允许web服务拥有自己的会话状态是有正当理由的。我有一个web服务,调用方必须调用一个身份验证方法才能使用。该方法返回调用方在后续请求中包含的id。通过将该id作为会话标识符,我可以允许它在给定时间后过期。如果我返回响应中的所有内容,黑客可能会想出如何伪造请求以绕过超时。虽然我同意不应使用会话在UI和Web服务之间进行通信,但允许Web服务拥有自己的会话状态是有正当理由的。我有一个web服务,调用方必须调用一个身份验证方法才能使用。该方法返回调用方在后续请求中包含的id。通过将该id作为会话标识符,我可以允许它在给定时间后过期。如果我返回响应中的所有内容,黑客就可以想出如何伪造请求以绕过超时。