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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 获取Web层之外的当前Principal前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下ntier应用程序:MVC>服务>存储库>域.我正在使用Forms身份验证.在我的MVC层之外使用Thread.CurrentPrincipal来获取我的应用程序的当前登录用户或者我应该使用HttpContext.Current.User是否安全?

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

更新

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

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

你怎么建议我继续?

解决方法

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

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

猜你在找的asp.Net相关文章