嗯,這是一個有趣的問題。我有一個在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