2016-06-10 11 views
0

WCF允許我在[OperationContract]方法調用期間設置會話值。如何替換從WCF移動到Web API的HttpContext.Current.Session

遷移到Web API將不再有效。有沒有什麼我可以使用,而不需要更改ApiController調用的方法簽名?

感謝。

+0

你在進入會話中進行了什麼? –

+0

@ AllanS.Hansen一個字符串值,用於確定應用程序從中檢索數據的數據庫。 – user2078938

回答

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(); 
    } 
}