我在我的ASP.NET MVC应用程序中使用Windows身份验证,并提示我在我的网络服务器上输入凭据,这是一个域成员[我有域凭据并且可以正常验证]但是当我的控制器操作调用“User.Identity”时.Name“试图检查当前登录用户的数据库值,这是从本地计算机返回SAM帐户而不是DOMAIN中的SAM帐户:
本地计算机用户名(User.Identity.Name返回):LOCALPC \ username
我期待什么(我正在对AD进行身份验证):DOMAIN \ username
这会导致我出现问题,因为我无法仅使用用户名来准确验证用户。
我是否遗漏了某些内容,是否有办法将我当前对网络服务器进行身份验证的内容退回到客户端计算机上的本地SAM帐户?
这一点很重要的原因是因为并非所有Intranet应用程序客户端都将加入域(未加入域但属于具有AD帐户的用户的计算机)。
答案 0 :(得分:2)
我的错误,现在问题已得到修复,结果证明我的代码中存在错误,而且我的计算机未加入域名,导致我认为问题与User.Identity.Name的值有关。
感谢大家的建议,希望我对该网站的下一个贡献将是一个不那么愚蠢的说明。
-
顺便说一下 - 此链接可能有助于人们在IIS中查找有关身份验证的相关信息:http://blog.mike-obrien.net/PermaLink,guid,5e975b20-7b05-472f-bd80-04028ab8b6fa.aspx
答案 1 :(得分:0)
在网络浏览器中出现提示时,请输入“DOMAIN \ username”而不是“username”进行身份验证。
编辑:
这是开发服务器吗?检查IIS正在运行的帐户。您是否在web.config中配置了模拟?