首页 新闻 会员 周边

.net中 System.Web.HttpContext.Current.User.Identity.Name获取字符串为空

0
悬赏园豆:10 [已解决问题] 解决于 2016-01-23 22:19

如题

string username=System.Web.HttpContext.Current.User.Identity.Name;

此处username为空字符串。

<authentication mode="Windows"/>

config文件已经如上设置。请问怎么得到当前登陆Windows的用户名和计算机名。谢谢。

问题补充:

说一下程序的基本情况。客户公司采用域网络,每台电脑都是用域账号登陆。权限分配都是通过域账号来控制。

使用Environment.UserName 和 Context.User.Identity.Name获取到的都是服务器应用程序池上配置的用户名。怎样才能获取到使用浏览器访问的用户名?

龙葛格的主页 龙葛格 | 小虾三级 | 园豆:782
提问于:2016-01-04 10:33
< >
分享
最佳答案
0

加上 <identity impersonate="true"/> 试试

收获园豆:10
dudu | 高人七级 |园豆:30994 | 2016-01-04 10:39

加上了,还是得不到用户名。请问还有没有其他方法?在线等

龙葛格 | 园豆:782 (小虾三级) | 2016-01-04 10:57

@龙葛格: IIS也要设置一下,禁用Anonymous Authentication,启用Windows Authentication

dudu | 园豆:30994 (高人七级) | 2016-01-04 11:11

@dudu: 试过了,还是不行。不知道是哪里的原因。找到一个替代方法

string userName= WindowsIdentity.GetCurrent().Name;

这行代码可以获取本机用户名

龙葛格 | 园豆:782 (小虾三级) | 2016-01-04 11:30
dudu | 园豆:30994 (高人七级) | 2016-01-04 11:41

@dudu: iis就是按那个装的。但还是获取不到。头疼。

龙葛格 | 园豆:782 (小虾三级) | 2016-01-04 13:54

@dudu: 另外,我上面说的那个方法也不行。那个获取到的是应用程序池上面配置的用户名。

龙葛格 | 园豆:782 (小虾三级) | 2016-01-04 14:07

@龙葛格: 问题还是没解决?

dudu | 园豆:30994 (高人七级) | 2016-01-05 09:57

@dudu: 是呀,找不到原因

龙葛格 | 园豆:782 (小虾三级) | 2016-01-05 10:19
其他回答(1)
0

关掉 匿名认证

Kv2019 | 园豆:209 (菜鸟二级) | 2016-08-24 15:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册