【问题标题】:How to get HttpContext.Current.User.Identity.Name in AspNet 5?如何在 AspNet 5 中获取 HttpContext.Current.User.Identity.Name?
【发布时间】:2015-10-12 17:54:39
【问题描述】:

如何使用 Asp.Net 5 获取 User.Identity.Name?我在stackoverflow的答案中读到HttpContext在这个版本中不再可用并且人们正在使用HttpContextAccessor,但是我尝试使用它并且不适合我,我的上下文总是返回null。

还有其他方法可以做到这一点吗?有人建议回到 Asp.Net 4.5 版本吗?

所以,我有几点要考虑.. - 我的应用程序工作正常,但我需要识别正在使用系统的用户。 - 我正在使用“域\用户”将允许的用户存储在数据库中,我需要维护它。 - 我正在使用 EntityFramework、AspNet5 和 angularjs

有什么建议吗?

【问题讨论】:

  • this 是您要找的吗?您还告诉您无法访问HttpContextAccessor。你在依赖注入吗?
  • "有人建议回到 ASP.NET 4.5 吗?"如果您想使用 ASP.NET 5,请随意。请记住,它仍处于测试阶段,没有多少人有使用它的经验,并且代码和文档正在开发中。另外,当这与所提出的问题无关时,为什么将其标记为 AngularJS?
  • 感谢您的帮助西瓦!我读过 AspNet Identity 不能使用 Windows 身份验证,因此我放弃使用它。我试过this,但我看到我需要研究依赖注入,我不知道。
  • 你好梅森!感谢您的回答!是的,我同意你的看法,但我的问题是基于我解决这个问题的经验,我已经在一周内寻找答案。所以,我放了 angularjs,因为我不知道是否有办法从客户端获取用户身份,也许。谢谢!
  • 如果您不使用 AspNet Identity,您是如何实现 Windows 身份验证的?

标签: asp.net asp.net-core httpcontext


【解决方案1】:

我希望您尝试实现的是 Windows 身份验证并以 User.Identity.Name 身份访问“域\用户”详细信息。

在最近或不久的将来,身份验证的工作方式是将用户详细信息存储在 Sql server、Active Directory、Azure 或 openID 等中。

ASP.NET 5 在很大程度上实现了身份管理,以利用 Active Directory、SQL Server、Azure 等基础设施改进;在所有这些过程中,ASP.NET 5 已停用“Windows 身份验证”。查看图片,它在从模板创建 ASP.NET 5 项目期间

重新考虑在 User.Identity.Name 方面使用 ASP.NET 5,我觉得没有必要仅仅因为禁用 Windows 身份验证而迁移到 ASP.NET 4.5,微软提供了其他更好的方法来完成它。

根据您的要求提供更多意见,我们可以提供更好的建议。

ASP.NET 5 仍处于测试阶段,直到它的生产准备好使用它来学习技能

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2017-11-22
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多