猿问

这样共享Session到Service层可行吗?

在显示层用如下代码,把需要存储的值放到线程拥有者里,代码如下

         var claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;             var a =new  ClaimsIdentity();
             a.AddClaim(new Claim("UserId","150"));            if (claimsPrincipal != null) claimsPrincipal.AddIdentity(a);

在Service层调用的时候如下:

  var claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;            var userId= claimsPrincipal.Claims.FirstOrDefault(c => c.Type == "UserId").Value;

请问这样把Seesion共享到Service可行吗?


GCT1015
浏览 517回答 1
1回答

海绵宝宝撒

不建议通过这种方式隐式的传递信息,这样通用性相当差而且由于缺少足够提示对后期维护也是相当麻烦。建议这种是直接在交互的方法上显式暴露出来进行传递,这样你做单元测试的话也会简单很多
随时随地看视频慕课网APP
我要回答