gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:25:57 25 4
gpt4 key购买 nike

我有以下 ntier 应用程序:MVC > 服务 > 存储库 > 域。我正在使用表单例份验证。在我的 MVC 层之外使用 Thread.CurrentPrincipal 来获取我的应用程序的当前登录用户是否安全,或者我应该使用 HttpContext.Current.User 吗?

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

更新

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

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

  • 你会建议我如何进行?

    最佳答案

    我也不会,HttpContext.Current.User特定于您的 Web 图层。

    为什么不将用户名注入(inject)您的服务层?

    关于asp.net-mvc - 在 Web 层之外获取当前的 Principal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543908/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com