我通过实施跟随答案Enable session in Web Api 2在Web API中使用Session。但是我遇到了Session变量的问题。
在业务对象类中,我有一个用于存储已更改记录的属性。
public class BaseBO
{
protected HttpSessionState _session;
public BaseBO()
{
_session = HttpContext.Current.Session;
}
private IList<FundInvestor> _investors;
public IList<FundInvestor> Investors
{
get
{
_investors = (IList<FundInvestor>)_session["_investors"];
if (_investors == null)
{
_investors = new List<FundInvestor>();
_session["_investors"] = _investors;
}
return _investors;
}
set
{
_investors = value;
_session["_investors"] = value;
}
}
}
在客户端,保存表单时,我向服务器发出两个请求。首先,我使用已更改记录的列表调用BaseBO实例的方法AddInvestorQueue
。已更改的记录将添加到Investors
的列表BaseBO
中。
第二个请求,我调用方法Edit
,我将在其中获取列表Investor
的元素并将这些记录更新到数据库。
我的问题是,当我调用第二个请求时,列表Investors
没有任何元素。请注意,第一个请求中的Investors
中添加了记录。我不知道为什么重置该列表。
使用ASP.NET Web窗体时,不会发生此问题。
有没有人遇到过类似的问题?我遇到了这个问题。任何建议对我都很有帮助。非常感谢。
答案 0 :(得分:0)
会话是无状态的。 我会为您提供基于令牌的身份验证,您可以在https://github.com/tb1998tb/token(网络api + angular)上看到。 祝你好运!