加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 获取Web层之外的当前Principal

发布时间:2020-12-16 04:33:52 所属栏目:asp.Net 来源:网络整理
导读:我有以下ntier应用程序:MVC服务存储库域.我正在使用Forms身份验证.在我的MVC层之外使用Thread.CurrentPrincipal来获取我的应用程序的当前登录用户或者我应该使用HttpContext.Current.User是否安全? 我问的原因是Thread.CurrentPrincipal似乎存在一些问题,
我有以下ntier应用程序:MVC>服务>存储库>域.我正在使用Forms身份验证.在我的MVC层之外使用Thread.CurrentPrincipal来获取我的应用程序的当前登录用户或者我应该使用HttpContext.Current.User是否安全?

我问的原因是Thread.CurrentPrincipal似乎存在一些问题,但我谨慎地在我的MVC层之外添加对System.Web的引用,以防我将来需要提供非web字体结尾.

更新

我一直在遵循目前收到的建议,将用户名传递给服务,作为被调用方法的参数的一部分,这导致我原始问题的改进.我需要能够检查用户是否在我的许多Service和Domain方法中担任特定角色.似乎有几个解决方案,只是想知道哪个是最好的方法:

>将整个HttpContext.Current.User作为参数传递,而不仅仅是用户名.
>在我的Web层之外调用Thread.CurrentPrincipal并使用它.但是我如何确保它等于HttpContext.Current.User?
>坚持传递目前为止建议的用户名,然后使用Roles.IsUserInRole.这种方法的问题是它需要引用System.Web,我觉得在我的MVC层之外是不正确的.

你怎么建议我继续?

解决方法

我不会这样做,HttpContext.Current.User特定于您的Web层.

为什么不将用户名注入服务层?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读