gpt4 book ai didi

c# - 在 ApiController 中访问 WebForms ASPX 页面 session

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:11 25 4
gpt4 key购买 nike

我正在尝试访问作为 Webform 项目一部分的 Controller 中的 session 。所有 session 变量都在 ASPX 页面上设置

Session["SESSION_KEY_UI_CULTURE"] = ddlLanguage.SelectedValue;

现在根据客户端的 API 请求,我需要读取 session 变量并执行任务,但 session 始终为空。

[RoutePrefix("api/accounts")]
public class AccountsController : ApiController
{
[Route("config")]
[HttpGet]
public IHttpActionResult GetCompanyConfig()
{
if(HttpContext.Current.Session != null)
{
//Session is always NULL
}

return Ok();
}
}

我尝试在 WebConfig 文件中删除和添加 SessionStateModule

<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule"/>

最佳答案

ASP.NET Web Api 适用于定义为无状态的 REST 服务。将 session 添加回 Web Api 违背了拥有 RESTful API 的目的。您可能需要重新考虑您要实现的目标并找到另一种方法来解决您的问题。

但是有一种方法可以做你想做的事:

要激活 session ,请将以下内容添加到您的 Global.asax

C#

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

VB

Sub Application_PostAuthorizeRequest()
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required)
End Sub

Herehere有 2 个主题方向相同,您可能希望查看这些主题以获取更多信息

关于c# - 在 ApiController 中访问 WebForms ASPX 页面 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51607987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com