嗯,这是一个有趣的问题。我有一个在Visual Studio开发服务器上运行的ASP.NET MVC3 Intranet应用程序,没有NTLM。我在测试的机器上没有AD域。MVC3 User.Identity.Name为null,Enironment.UserName不是
当我尝试用户User.Identity.Name
时,它会抛出一个空引用异常,但是当我使用Environment.UserDomain
和Environment.UserName
时,它们将填充正确的值。
我对此感到非常困惑。我应该避免使用User.Identity.Name
,或者有没有原因为空?
UPDATE
我注意到,当我使用 System.Web.HttpContext.Current.User.Identity.Name
它的工作原理,但只是用User.Identity.Name
不起作用。我是否错过了使用声明?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
你在哪里运行这个代码?什么是整体环境? (方法,线程...) – 2012-02-08 21:43:45
我在Controller类中直接运行此代码,在构造函数中 – Kev 2012-02-09 04:08:07
感谢您的UPDATE。我有同样的问题和System.Web.HttpContext.Current.User.Identity.Name解决它。谢谢! – 2013-09-19 14:22:47