C# 如果没有cookie c,则阻止响应#

C# 如果没有cookie c,则阻止响应#,c#,web-services,cookies,C#,Web Services,Cookies,我使用web方法创建了web服务: namespace Temp { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService] public cl

我使用web方法创建了web服务:

namespace Temp
{
  [WebService(Namespace = "http://tempuri.org/")]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  [System.ComponentModel.ToolboxItem(false)]
  [System.Web.Script.Services.ScriptService]
  public class Init : System.Web.Services.WebService
   {
    [WebMethod(EnableSession = true)]
    public string GetData(string userCode)
    {
     // code here
    }
  }
}
我想阻止没有包含“会话id”的cookie的请求获取响应(或发送respone 40x)

来自我的系统的请求已通过cookie发送,如: Cookie:ASP.NET\U会话ID=

如果我向这个web方法发出请求并从cookie中删除会话id,我就会从服务器获取数据


如何防止这种情况发生?

您需要这样做

var sessionCookie = HttpContext.Current.Request.Cookies["ASP.NET_SessionId"];
if(sessionCookie == null || String.IsNullOrWhiteSpace(sessionCookie.Value)
    return null; // or throw WebFaultException(httpStatusCode)

但如果我有50个网络方法呢?!没有什么比这更一般的了?您可以将相同的代码片段放在服务类的构造函数中。(需要无参数,无需进行额外工作)