【问题标题】:System.Security.Principal.WindowsIdentity.GetCurrent().Name does not return my current domain userSystem.Security.Principal.WindowsIdentity.GetCurrent().Name 不返回我当前的域用户
【发布时间】:2015-05-14 09:50:45
【问题描述】:

我在 MVC 视图中使用以下标记来显示当前 Windows 用户:

<label>@System.Security.Principal.WindowsIdentity.GetCurrent().Name</label>

但它显示:NT AUTHORITY\SYSTEM

请注意,我的用户是在域上注册的,所以我希望它显示(域名\用户名)

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    使用User.Identity.NameUser 是控制器类中的一个属性。如果您使用 Windows 身份验证,它包含 WindowsPrincipal 对象,而 Identity.Name 属性包含格式为 DomainName\Username 的名称

    【讨论】:

    • (User.Identity.Name) 如果我使用(Windows 身份验证)但我不是。
    • 其实WindowsIdentity是在你使用WinNT auth类型的时候生成的。您使用的是什么身份验证类型?
    • 我正在使用表单身份验证。但我现在明白了,(WindowsIdentity)是在使用 WinNT 时生成的。谢谢你:)
    • 不客气。附言如果您想从当前域“使用”Windows 系统登录您的用户,您必须使用 Windows 身份验证。当您将用户数据存储在持久性数据库中时,会使用表单身份验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    相关资源
    最近更新 更多