首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Asp.Net MVC中,为什么我的代码中ApplicationUser总是空的?

在Asp.Net MVC中,ApplicationUser是一个用于表示应用程序用户的类。它通常用于身份验证和授权的目的。当你在代码中访问ApplicationUser时,如果它总是空的,可能有以下几个原因:

  1. 未正确配置身份验证:在Asp.Net MVC中,身份验证是通过配置文件进行管理的。你需要确保在Web.config或App.config文件中正确配置了身份验证相关的设置,包括连接字符串、身份验证提供程序等。
  2. 未正确初始化UserManager:在Asp.Net Identity中,UserManager是用于管理用户的类。你需要在代码中正确初始化UserManager,并将其与当前的HttpContext关联起来。可以通过在Global.asax.cs文件的Application_Start方法中添加以下代码来实现:
代码语言:csharp
复制
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
HttpContext.Current.GetOwinContext().Set<UserManager<ApplicationUser>>(userManager);
  1. 未正确配置Owin中间件:在Asp.Net Identity中,Owin中间件用于处理身份验证相关的请求。你需要确保在Startup.cs文件中正确配置了Owin中间件。可以通过在Configure方法中添加以下代码来实现:
代码语言:csharp
复制
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
});
  1. 未正确使用UserManager获取ApplicationUser:在代码中获取ApplicationUser时,你需要使用UserManager的FindById或FindByName等方法来获取用户实例。例如:
代码语言:csharp
复制
var userManager = HttpContext.Current.GetOwinContext().Get<UserManager<ApplicationUser>>();
var user = userManager.FindById(User.Identity.GetUserId());

总结起来,如果在Asp.Net MVC中的代码中ApplicationUser总是空的,你需要确保正确配置身份验证、正确初始化UserManager、正确配置Owin中间件,并使用UserManager获取ApplicationUser。如果问题仍然存在,可能需要进一步检查代码逻辑和调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MVC架构Asp.net应用和实现

图2.1 MVC关系图 2、为什么要在Web应用中使用MVC架构 用户界面逻辑更改往往比业务逻辑频繁,尤其是基于Web应用程序。例如,可能添加新用户界面页,或者可能完全打乱现有的页面布局。...2.3 有利于团队开发 开发过程,可以更好分工,更好协作。有利于开发出高质量软件。良好项目架构设计,将减少编码工作量 :采用MVC结构 + 代码生成器,是大多数Web应用理想选择。...个人能力参差不齐团队开发,采用MVC开发是非常理想。 3 MVC Asp.net原理及实现 Asp.net提供了很好实现这种模式类似环境。...每个Asp.net页面都有一种机制,将页面部件所要调用方法一个与其分离实现。...Asp.net,简单模型可以方便地用自动代码生成工具实现。

3.7K20
  • ASP.NET MVCActionFilter是如何执行

    ASP.NET MVC四大筛选器(Filter),ActionFilter直接应用在某个Action方法上,它在目标Action方法执行前后对调用进行拦截以执行一些额外操作。...本篇文章主要讲述多一个应用到相同Action方法上ActionFilter执行机制。[本文已经同步到《How ASP.NET MVC Works?》...通过Visual StudioASP.NET MVC项目模板创建Web应用我们定义了如下三个ActionFilter(FooAttribute、BarAttribute和BazAttribute...FilterBaseAttribute实现OnActionExecuting和OnActionExecuted方法,我们将ActionFilter自身类型和执行方法名写入当前HttpResponse...如果异常是非链头ActionFilterOnActionExecuted方法抛出,处理流程与此类似。 我们不妨举例说明Action链执行过程对异常处理。

    1.6K70

    asp.net mvc 简单项目框架搭建(二)—— Spring.NetMvc简单应用

    首先,还是把一些类似的操作完善一下,与Dal层相同,我们同样可以把Bll层某些使用广泛类似的操作封装到基类,另外,同样要给Bll层添加接口层。...user信息代码,前端代码省略了。...接下来说一下spring.net使用方法和步骤: 1.web.config添加Spring.Net块配置和Spring.Net容器配置节点 块配置节点: 1 <!...将 MvcApplication 由继承 System.Web.HttpApplication 改为 Sring.Web.Mvc.SpringMvcApplication . 4.UI项目下新建Config...好了,一个简单框架第二部分,UI层和Bll层解耦也完成了,关于框架搭建这篇博客就写到这里啦。 email:3074596466@qq.com 如有谬误,欢迎指正!

    1.3K20

    ASP.NET MVC5Model验证

    Model验证是ASP.NET MVC重要部分,它主要用于判断输入数据类型及值是否符合我们设定规则,这篇文章就介绍下ASP.NET MVCModel验证几种方式。...除此之外,ASP.NET MVC还会帮助我们进行数据类型验证,如,若在年龄一栏输入非整数,那么验证将不会通过,且会提示数值不合法。...前端验证 上述验证均是服务器端进行,除此之外我们也可以使用js客户端进行数据验证。...除了我们自己手写js代码外,ASP.NET MVC也提供了前端验证方法,要启用ASP.NET MVC提供前端验证方法需要在页面引入三个js文件: jquery-1.10.2.min.js(也可以是其它版本...引用文件之后,运行程序,然后查看页面源代码,可以看到forminput标签多出了 data-val 属性以及其它和数据注解相关属性。 对于验证失败信息,我们需要对用户进行相应提醒。

    1.5K20

    从Membership 到 .NET4.5 之 ASP.NET Identity

    我们先添加一个Model继承ProfileBase来为我们新用户对象建模 web.config配置ProfileProvider MVC站点中实现对我们用户信息管理 UserProfile代码...大家可以看到profile里面的inherits结点我们设置了我们上一步建立那个对象,这样我们就可以代码MVC里面的Profile对象转换成我们要这些类型。...惯用伎俩) 另外,VS2012或2013创建一个MVC4.0Internet程序,就会为你自动添加所有代码!   最后一招够狠,我们来试一下。...VS2012创建一个4.0 MVC站点,就可以Controllers和Models中发现相关代码AccountController已经有了登录注册相关代码。 ?   ...ASP.NET Identity 基础示例   ASP.NET Identity是.NET Framework4.5引入,从Membership发布以来,想微软已经从开发者以及企业客户那里面得到了足够反馈信息来帮助他们打造这样一套新框架

    1.9K60

    ASP.NET Core 依赖注入

    1.3 为什么要反转? 为了在业务变化时候尽少改动代码可能造成问题。 比如我们现在要把从EF中去验证登录改为从Redis去读,于是我们加了一个 RedisLoginService。...(注:ASP.NET Core中所有用到EFService 都需要注册成Scoped ) 而实现这种功能方法就是整个reqeust请求生命周期以内共用了一个Scope。...三、DIASP.NET Core应用 3.1Startup类初始化 ASP.NET Core可以Startup.cs  ConfigureService配置DI,大家看到 IServiceCollection...>, EFLoginService>(); services.AddMvc(); ) ASP.NET Core一些组件已经提供了一些实例绑定,像AddMvc就是Mvc Middleware...这一步是Mvc初始化控制器时候完成,我们后面再介绍到Mvc时候会往细里讲。 3.3 View中使用 View需要用@inject 再声明一下,起一个别名。

    1.8K91

    全面理解 ASP.NET Core 依赖注入

    录了一些关于ASP.NET Core入门视频:有兴趣同学可以去看看。....NET Core DI 2.1 实例注册 2.2 实例生命周期之单例 2.3 实例生命周期之Tranisent 2.4 实例生命周期之Scoped 三、DIASP.NET Core应用...1.3 为什么要反转? 为了在业务变化时候尽少改动代码可能造成问题。 比如我们现在要把从EF中去验证登录改为从Redis去读,于是我们加了一个 RedisLoginService。...三、DIASP.NET Core应用 3.1Startup类初始化 ASP.NET Core可以Startup.cs  ConfigureService配置DI,大家看到 IServiceCollection...这一步是Mvc初始化控制器时候完成,我们后面再介绍到Mvc时候会往细里讲。 3.3 View中使用 View需要用@inject 再声明一下,起一个别名。

    2.3K80

    ASP.NET MVC客户端验证:jQuery验证Model验证实现

    简单了解了Unobtrusive JavaScript形式验证jQuery编程方式之后,我们来介绍ASP.NET MVC是如何利用它实现客户端验证。...对于客户端验证,ASP.NET MVC对jQuery验证插件进行了扩展,实现了另一种不同内联方式是我们 可以将验证规则定义在被验证输入元素属性。...二、客户端验证规则生成 ASP.NET MVC利用jQuery进行客户端验证时候,虽然验证规则并没有采用其原生方式通过被验证元素class属性来提供,但是却可以通过“data-val-{rulename...如果该列表不为,它们将作为验证属性附加到目标属性对应元素。...ASP.NET MVC客户端验证:jQuery验证 ASP.NET MVC客户端验证:jQuery验证Model验证实现 ASP.NET MVC客户端验证:自定义验证

    7.1K70

    MVC 模式 C# 应用

    更好可测试性:特别是模型部分,更容易编写单元测试。MVC C# 应用在 C# ASP.NET MVC 是一个非常流行框架,用于构建基于 MVC 设计模式 Web 应用程序。...下面我们将通过一个简单例子来探讨 MVC 如何在 ASP.NET 实现。创建一个新 ASP.NET MVC 项目首先,我们需要创建一个新 ASP.NET MVC 项目。... Visual Studio ,选择“文件” > “新建” > “项目”,然后选择 ASP.NET Web 应用程序,并选择 MVC 模板。...解决方法:考虑将复杂逻辑移到服务层或者使用领域驱动设计(DDD)原则来重构应用。3. 数据库访问代码混杂控制器问题描述:控制器包含了数据库访问逻辑,这违反了单一职责原则。...希望这篇文章能够帮助你更好地理解 MVC C# 应用!

    25220

    ASP.NET MVCRazor引擎:IoCView激活过程应用

    ASP.NET MVCRazor引擎:RazorView》介绍BuildManagerCompiledView时候,我们谈到默认使用ViewPageActivator使用当前注册DependencyResolver...本篇文章我们将演示如何通过自定义View方式实现与IoC框架Ninject集成。[本文已经同步到《How ASP.NET MVC Works?》...,为了让View上输出一些内容随着当前线程UICulture而动态地变化,我们一个ASP.NET MVC应用定义如下一个读取资源内容抽象类ResourceReader。...,即将语言文化代码置于请求URL来决定希望采用语言。...ASP.NET MVCRazor引擎:View编译原理 ASP.NET MVCRazor引擎:RazorView ASP.NET MVCRazor引擎:IoCView激活过程应用 ASP.NET

    94390

    ASP.NET MVC通过URL路由实现对多语言支持

    对于一个需要支持多语言Web应用,一个很常见使用方式就是通过请求地址来控制界面呈现所基于语言文化,比如我们表示请求地址URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎样语言来显示界面的内容...对于一个ASP.NET MVC应用来说,我们很容易通过URL路由来实现这样一个功能。[本文已经同步到《How ASP.NET MVC Works?》...] 具体介绍实现之前,我们通过一个简单例子谈谈最终实现效果。...通过ASP.NET MVC项目模板创建Web应用,我们创建了如下一个HomeController,默认Action方法Index用于呈现一个登录View。...,我们修改了默认添加URL路由注册代码,使请求URL包含相应语言文化信息({culture})。

    1.7K60

    ASP.NET Core 5.0 MVC Razor 页面 介绍

    布局组件用于避免代码重复和不一致。 有关详细信息,请参阅 ASP.NET Core Blazor 布局。 @model 此方案仅适用于 Razor () MVC 视图和页面。...@model 指令指定传递到视图或页面的模型类型: @model TypeNameOfModel Razor 使用单独用户帐户创建 ASP.NET CORE MVC 或页面应用, Views/...指令: cshtml 文件,指示该文件是一个 Razor 页面。 有关详细信息,请参阅自定义路由和 ASP.NET Core Razor Pages 介绍。...RenderFragment 参数前导或尾随空白。 例如,传递到另一个组件子内容。 C# 代码块(例如 @if 和 @foreach)之前或之后。...@section指令与MVC 和 Razor 页面布局结合使用,以使视图或页面能够 HTML 页面的不同部分呈现内容。 有关详细信息,请参阅 ASP.NET Core 布局。

    41910

    ASP.NET MVC 4单页面应用程序

    ASP.NET MVC 4 beta包含了一个实验项目,用作开发“单页面应用程序(single page applications)”。...它是构建于jQuery和Knockout之上数据访问和缓存库。示例代码,你会看到有一个与knockout兼容视图模型被自动生成。它内部是基于Upshot函数,用作处理与服务层通信。...另外它还包含用于驱动UI代码。(SPA视图模型类似XAML技术,如此看来,这块地方很快会充斥各式各样代码。) MVVM风格数据绑定使用Knockout框架完成。...服务器端 服务端应用程序框架由普通MVC页面表示,而应用程序内各种视图由分离页面(partial pages)表示。示例,Knockout数据绑定用作动态地显示和隐藏这些页面。...DataController是ASP.NET Web APIApiController子类,后者提供了客户端向服务器提交ChangeSetEntry基本方法。

    1.5K70
    领券