Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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# jquery ajax调用——使用会话的替代方案?_C#_Jquery_Web Services_Session - Fatal编程技术网

C# jquery ajax调用——使用会话的替代方案?

C# jquery ajax调用——使用会话的替代方案?,c#,jquery,web-services,session,C#,Jquery,Web Services,Session,我被要求不要在代码中的任何地方使用会话。目前,我正在对web服务接口的用户进行身份验证,并将访问令牌(一个对象)存储在会话中,然后将其重新用于后续请求。在服务器端存储它的好地方是什么?出于安全原因,我不想将其发送给客户 这是密码- var person; $.ajax({ url: 'Default.aspx/LoadPerson', data: JSON.stringify({ id: 1 }), type: 'POST',

我被要求不要在代码中的任何地方使用
会话
。目前,我正在对web服务接口的用户进行身份验证,并将访问令牌(一个对象)存储在会话中,然后将其重新用于后续请求。在服务器端存储它的好地方是什么?出于安全原因,我不想将其发送给客户

这是密码-

 var person;
    $.ajax({
        url: 'Default.aspx/LoadPerson',
        data: JSON.stringify({ id: 1 }),
        type: 'POST',
        contentType: 'application/json;',
        dataType: 'json',
        success: function (result) {
            person = result.d;
        }
    });
我的Web服务方法如下所示-

    [WebMethod]
    public static Person LoadPerson(int i)
    {
        var person = new Person();
        person.Name = "Bob";
        var userToken = SetupWebserviceUser();
        HttpContext.Current.Session["UserToken"] = userToken();
        // Call web service, get data.
        return person;
    }
在服务器端存储它的好地方是什么

如果您不想将数据存储在客户端或服务器中,那么剩下的选项就不多了。

我能想到的唯一选项是数据库\静态变量\ XML文件

为什么你不能使用这个会话?这似乎是存储这些数据的最佳场所。另一个选项是将令牌存储在数据库或服务器内存中,并使用cookie跟踪用户,但这正是会话在.net中的工作方式……该应用程序将集成到web场上的Sharepoint网站中。我们的管理员要求我避免使用会话。如果我把数据放在一个静态变量中,它会在调用之间保存数据吗?编辑:是的!我只需要访问令牌对象的三个属性。我已经创建了三个静态变量,设置了值,并且能够在后续调用中访问它。现在,我该如何处理这些数据?静态可能会有潜在的危险,请记住web访问是多线程的,并验证您不能作为另一个用户访问这些数据,在第一个用户仍处于活动状态时,不应允许该用户访问这些数据。我有一个全局加载函数,在加载页面时只调用一次。我已经在函数的开头显式地将变量设置为null。现在工作很好。谢谢@谜没问题。如果存在多线程威胁,请确保使用
lock