如何替换从WCF迁移到Web API的HttpContext.Current.Session

时间:2016-06-10 10:58:22

标签: asp.net-web-api

WCF允许我在form2方法调用的持续时间内设置会话值。

迁移到Web API,这将不再有效。在不更改[OperationContract]调用的方法签名的情况下,我还可以使用其他内容吗?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您只想存储请求剩余部分的值,可以将其放在HttpRequestMessage.Properties中。以下是在控制器之前调用DelegatingHandler的示例:

public class MyHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        request.Properties.Add("SomeKey", "SomeValue");

        return base.SendAsync(request, cancellationToken);
    }
}

public class MyController : ApiController
{
    public IHttpActionResult Get()
    {
        var someValue = Request.Properties["SomeKey"];

        // do stuff

        return Ok();
    }
}