在Application_Start()中访问User.Identity

Sal*_*lem 0 c# asp.net-mvc entity-framework asp.net-mvc-4

我需要访问User.Identity.Name我的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 ;
        }
    }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 7

没有用户Application_Start.

Application_Start 在任何请求进入之前,在设置应用程序时运行.

听起来你真的想要设置HttpContext状态Application_BeginRequest.
(不是Application状态,是全局的,在所有请求中共享)