C# 如何在RESTWebAPI中保存登录到会话的数据
我试图将登录详细信息保存到会话中,但出现错误,会话为C# 如何在RESTWebAPI中保存登录到会话的数据,c#,asp.net-web-api,C#,Asp.net Web Api,我试图将登录详细信息保存到会话中,但出现错误,会话为null,无法访问它 public void saveToSession(UserModel userInfo) { string id = userInfo.Id.ToString(); HttpContext context = HttpContext.Current; context.Session["Id"] = id; context.Session["FirstName"] = userInfo.Fi
null
,无法访问它
public void saveToSession(UserModel userInfo) {
string id = userInfo.Id.ToString();
HttpContext context = HttpContext.Current;
context.Session["Id"] = id;
context.Session["FirstName"] = userInfo.FirstName;
context.Session["LastNAme"] = userInfo.LastName;
context.Session["Username"] = userInfo.Username;
context.Session["Email"] = userInfo.Email;
context.Session["Role"] = userInfo.Role;
}
我需要进行其他配置吗 您需要进行一些启动配置 在配置服务中
services.Configure<CookiePolicyOptions>(options => {
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
})
REST通常要求执行操作所需的所有内容都包含在请求中,因此不会启用会话。这有点脏 这适用于ASP.NET Web API 5.x。如果您实际使用的是ASP.NET Core,它将无法工作(请更新您的标记) 我最近将此技术用作一种临时措施,并从代码中删除了它,因为我已将其替换为将请求与相关数据联系起来的适当输入。我建议你也这样做
最后,我将其称为“dirty”,因为它依赖于反射在框架类中分配私有字段。如果实现发生更改,它可能只是默默地停止工作:要么字段消失,
GetField
调用返回null
,随后的检查停止通过,要么字段保留但不再使用。一个不太可能但仍然可能发生的更改是,字段的类型更改为不兼容的类型,然后在启动时出现异常。您是指在WebConfig中还是什么ConfigureServices中?您使用的是asp.net还是.net core?我想可能有误会吧?我正在使用asp.net
app.UseSession();