2013-06-03 65 views
0

我需要訪問User.Identity.NameApplication_Start()訪問到User.Identity中的Application_Start()

我會用這個從我的DbContext

得到的數據是有可能做這樣的事情?我可以做得更好嗎?

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     WebApiConfig.Register(GlobalConfiguration.Configuration); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 

     using (MyApp.ContextDB context = new MyApp.ContextDB()) 
     { 
      var uid = context.SomeDBSet.Where(x => x.WinID == User.Identity.Name).FirstOrDefault(); 
      Application["uid"] = uid ; 
     } 
    } 
+0

我認爲你可以使用'HttpContext.User.Identity.Name' – user1477388

+2

@ user1477388:不。 – SLaks

+1

'Application [「uid」]'沒有任何意義。 「應用程序」按其定義由其所有用戶共享。我認爲你正在尋找'會話'或'請求'範圍。 – bzlm

回答

7

Application_Start中沒有用戶。

Application_Start運行設置當應用程序,任何請求進來之前。

這聽起來像你真的想設置Application_BeginRequest的HttpContext狀態。
(不Application狀態,這是全球性的,所有的請求之間共享)

+0

+1好的解釋 - 自己犯了這個錯誤。 – Mansfield

相關問題