【发布时间】:2012-02-28 08:05:02
【问题描述】:
我被要求不要在我的代码中的任何地方使用Session。目前,我正在向 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;
}
【问题讨论】:
-
为什么不能使用会话?这似乎是存储这些数据的理想场所。另一种选择是将令牌存储在数据库或服务器上的内存中,并使用 cookie 跟踪用户,但这正是会话在 .net 中的工作方式......
-
该应用程序将被集成到网络场上的 Sharepoint 站点中。我们的管理员要求我避免使用会话。
标签: c# jquery web-services session