在Web API 2中保留用户配置的最佳方法?

时间:2018-03-22 15:57:56

标签: c# asp.net rest web-services authentication

我正在使用Web API 2开展项目,并且我正在尝试找到将用户配置保存在内存中的最佳方法。

每个用户都有一个特定的配置(时区,位置,语言,公司信息和更多信息),因此我尝试在首次登录时尝试查询此信息并将其保存到内存或一些东西。因此,许多操作经常使用此信息,并且我不想通过每次需要时查询所有信息来降低应用程序性能。

所以,第一个计划是使用这些信息实现静态clas,但我不知道它是否是最好的方法。

有人可以建议在Web API 2上实现此功能的最佳方法吗?

2 个答案:

答案 0 :(得分:0)

您可以将所有其他信息存储在声明标识中。

答案 1 :(得分:0)

您可以在会话中添加信息:

尝试: 在 Global.asax 中,您必须添加下一个代码:

protected void Application_PostAuthorizeRequest()
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}

现在,您可以在控制器或类中使用Session:

var session = System.Web.HttpContext.Current.Session;
session["token"] = "abc";

变量会话将在应用程序中保留并获取session

var abc = session["token"].ToString();

参考: How to keep alive a variable among a class inherit from ApiController and other one inherit from ExceptionFilterAttribute