获取ASP.NET MVC登录用户的用户名

15 浏览
0 Comments

获取ASP.NET MVC登录用户的用户名

我想获取登录用户名和域的用户名。

我用以下代码来获取它:

User.Identity.GetUserId()

在我的web.config中是这样的:


    
    
    
    
    

目前,我只得到一个空字符串。我需要改变什么来获取Windows用户名信息?

其他人的注意事项

在我的研究中,我还找到了以下内容:

Environment.UserDomainName + @"\" + Environment.UserName

根据这个链接,它只提供线程正在运行的身份,而不是Windows的信息。

编辑1:我目前正在调试模式下测试我的程序。

0
0 Comments

原因:

- 使用HttpContext.User.Identity.Name获取用户名时返回空字符串。

- 出现HTTP Error 404.15错误,提示查询字符串过长。

解决方法:

- 确保在web.config文件的system.web节点中有授权标签,并设置为允许匿名用户访问。

- 在IIS中禁用匿名身份验证,启用Windows身份验证。

- 确保没有在任何操作上使用[AllowAnonymous]属性。

代码示例:

// 获取当前登录用户的用户名
var username = HttpContext.User.Identity.Name;

参考链接:

- [stackoverflow.com/questions/11636386](http://stackoverflow.com/questions/11636386)

- [stackoverflow.com/questions/28483745](http://stackoverflow.com/questions/28483745)

0
0 Comments

在ASP.NET MVC中获取登录用户的用户名有多种方法,但有时在使用User.Identity.GetUserId()方法时会出现问题,这是因为User.Identity.GetUserId()Microsoft.AspNet.Identity命名空间中的扩展方法,而该命名空间与Windows身份验证不兼容。一般来说,在Windows身份验证中,User.Identity.Name的值的格式为{DOMAIN}\{USER},所以如果需要获取域名和/或用户名,可以将该字符串按\进行分割,然后取出所需部分。

而在使用Identity认证时,User.Identity.Name应该是ApplicationUser.UserName的值,但根据具体的设置,它也可能是ApplicationUser.Email的值。

因此,如果需要获取登录用户的用户名,可以根据具体的身份验证方式选择合适的方法来获取。

0