【问题标题】:Get user info for when deployed to Azure获取部署到 Azure 时的用户信息
【发布时间】:2016-05-18 15:41:45
【问题描述】:

MVC5 .Net 4.6.1

我有以下代码来获取当前登录的 Windows 用户:

 var windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
  var value = windowsIdentity.Name;//returns SYSTEMS\\CJones

在本地运行时就像一个魅力。我将我的站点部署到 Azure,现在返回了这个确切的代码:

  azurewebappname_ee6a

这当然行不通。有谁知道如何获取当前登录的 Windows 用户,以便不会检测到 Azure Web 应用程序?

【问题讨论】:

    标签: c# azure asp.net-identity claims-based-identity


    【解决方案1】:

    是的,它看起来像一些服务主体。您正在部署到 Web 应用程序,并且由于它是一项服务,因此没有“有人登录”之类的功能 - 您根本无法连接到底层操作系统 - 这是不同的模型,特别是如果 Web 应用程序是在类似于共享模式的情况下。

    如果您需要实现此类功能,虚拟机部署似乎是更合适的选择。

    【讨论】:

    • 这是有道理的...我正在寻找任何形式的工作来吸引用户
    • 为了什么?你能详细说明一下场景吗?我认为,您在 Web 应用程序中获得的最大可能是一些在外部世界中没有意义的服务主体
    • 详细?我想要的只是登录到他们机器的当前用户。那是直截了当的。我不能按照我描述的方式做,所以我正在寻找另一种方法。如果您不知道其中一个,那很好。
    【解决方案2】:

    正如 Alex 所说,这是因为网络应用程序处于共享模型中。您需要按照blog 中的说明向 Web 应用程序添加某种级别的身份验证。然后使用适当的 API 来检索已登录用户的数据。

    存在许多用于身份验证的集成方法,因此很难为所有这些方法提供示例。只是补充一下,因为它是您正在访问的 Internet 区域 URL,因此用户名不会被公开,这就是为什么它在技术上不能正常工作(以防万一您想知道)。

    【讨论】:

    • 感谢您的反馈。我找到了解决方案。我设置了一个新的 MVC 项目并单击“更改身份验证”......我选择了“工作和学校”,我公司的 URI 出现了,VS2015 完成了所有 OWIN swcurity 的工作。所以有些东西是我需要的。谢谢
    • 很高兴它有帮助?
    猜你喜欢
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2019-11-12
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多