如何在Web API控制器中读取ASP.NET_SessionId?

我们有一个遗留的ASP.NET WebForms项目,我正在尝试使用Web API而不是Code-Behind上的传统[WebMethod]静态方法进行现代化改造(因为它是如此有限)。

但是,我也希望能够在Web API中读取会话Cookie。以前,我可以通过访问simplify = FALSE然后将其转换为模型来在“隐藏代码”中阅读它-我不知道如何使用Web API做到这一点。

我正在使用axios与我的Web API控制器对话。

我已将HttpContext.Current.Session["NAME_OF_COOKIE_HERE"]添加到我的axios配置中,但如何从那里继续前进?您究竟如何在Web API控制器中读取会话cookie?

这里是一个示例:

withCredentials: true
// Client for testing
axios.get(API_ENDPOINT_URL_HERE,{withCredentials: true}).then(res => res).catch(err => err);
libaisong1114 回答:如何在Web API控制器中读取ASP.NET_SessionId?

答案在此链接中:ASP.NET Web API session or something?

具体地说,在Global.asax.cs中添加以下内容

public override void Init()
{
    this.PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest;
    base.Init();
}

void MvcApplication_PostAuthenticateRequest(object sender,EventArgs e)
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(
        SessionStateBehavior.Required);
}
,

您可以像通过HttpRequestMessage.Headers读取httpRequestMessage中的任何标头属性一样读取cookie。请按照正确的实现方法访问链接 WebAPI: Getting Headers,QueryString and Cookie Values 还请注意,如果您期望Request中有cookie,则使用“ Cookie”标头键;如果要进行REST API调用并尝试查找cookie作为响应,则请使用“ Set-Cookie”

本文链接:https://www.f2er.com/3138748.html

大家都在问