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

当使用依赖注入( .NET )时,Unity Web 2 UserPrincipal.IsAuthenticated总是假的

当使用依赖注入(.NET)时,Unity Web 2 UserPrincipal.IsAuthenticated总是假的。

依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件之间的依赖关系。在.NET开发中,Unity是一种常用的依赖注入容器,用于管理对象的创建和生命周期。

UserPrincipal.IsAuthenticated是.NET中的一个属性,用于判断当前用户是否通过身份验证。当使用Unity进行依赖注入时,有时会出现UserPrincipal.IsAuthenticated属性总是返回false的情况。

这个问题通常是由于在使用Unity进行依赖注入时,没有正确配置或注册相关的服务所导致的。以下是可能导致该问题的一些原因和解决方法:

  1. 配置错误:确保在Unity配置文件中正确注册了相关的服务。检查配置文件中是否包含正确的类型映射和依赖关系。
  2. 生命周期管理:检查被注入的对象的生命周期管理方式。如果对象的生命周期设置为瞬态(Transient),则每次注入都会创建一个新的实例,可能导致UserPrincipal.IsAuthenticated属性的值为false。可以尝试将生命周期设置为其他选项,如单例(Singleton)或线程(PerThread)。
  3. 认证上下文:确保在依赖注入过程中正确传递和管理认证上下文。如果认证上下文丢失或不正确,UserPrincipal.IsAuthenticated属性的值可能会受影响。
  4. 依赖关系解析:检查依赖关系的解析过程是否正确。确保Unity能够正确解析依赖关系,并将正确的实例注入到需要的地方。

总结起来,当使用依赖注入(.NET)时,Unity Web 2 UserPrincipal.IsAuthenticated总是假的可能是由于配置错误、生命周期管理、认证上下文或依赖关系解析等问题导致的。解决方法包括检查配置、调整生命周期、管理认证上下文和正确解析依赖关系。

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

相关·内容

ASP.NET Web API中依赖注入什么是依赖注入ASP.NET Web API依赖解析器使用Unity解析依赖配置依赖解析

什么是依赖注入     依赖,就是一个对象需要另一个对象,比如说,这是我们通常定义一个用来处理数据访问存储,让我们用一个例子来解释,首先,定义一个领域模型如下: namespace Pattern.DI.MVC.Models...,你同样可以使用设置器注入方式,ASP.NET Web API在为请求映射了路由之后创建控制器,而且现在他不知道任何关于IProductRepository细节,这是通过API依赖器解析到。...ASP.NET Web API依赖解析器 ASP.NET Web API定义了一个IDependencyResolever用来解析依赖项目,以下是这个接口定义: public interface IDependencyResolver...ASP.NET Web API创建一个controller实例时候,它首先调用IDependencyResolverGetService方法,传回一个Controller实例,你可以使用一个扩展钩子去创建控制器并且解析依赖...使用Unity解析依赖 虽然你可以重头开始写一个IDenpendencyResolver实现,但是这个接口已经设计了可以作为ASP.NET Web API和IoC工具桥梁。

2.2K80

Asp.Net Web API 2第十一课——在Web API中使用Dependency Resolver

前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文主要来介绍在Asp.Net...Web API使用Web APIDecpendency Resolver在控制器中如何注入依赖。...一个简单dependency resolver  下面的代码展示了一个简单dependency resolver。这个代码主要只是展示了在Web API中依赖注入如何工作。...框架处理完这个请求时候,它在子范围中调用Dispose 。你能通过Dispose 方法来释放控制器依赖。...return this; } 如果不适用this,那么其他还可以使用什么,还有待进一步深入。之后自己还要对依赖Unity依赖注入进行研究。不过感觉好像没MEF那么好用。

73340
  • Unity系列之简介

    Unity目标是为了提升"依赖注入"思想,去建立更加松耦合系统.patterns & practices 小组在那个时候实现DI方式和我们现在认为DI有所不同,DI不是单一可重复使用容器,...有趣有人想要引用CAB(它使用了一个基于一个版本DI容器ObjectBuilder)和企业图书馆(基于不同版本ObjectBuilder)在同一个项目中。集成将会变得非常困难。...通过上面的挫败,Unity诞生了,企业库4.0小组,将依赖注入应用程序(已知Unity最原始版本)放到了产品列表里面,我们对于Unity这个项目的目标很简单,首先,向我们社区介绍并推广依赖注入概念没有障碍通过大量底层实现细节...在我观点看来,Unity在上面的目标都取得了成功.我对我们对于.Net社区所产生影响感到骄傲.Unity很快成为了.Net生态系统中最受欢迎DI容器.更重要是,DI不再是"专家技术",而是主流一部分...NET MVC and WebAPI)均来自DI支持.你得知道,一个概念(依赖注入)变成一个核心观点,Unity发挥了很大作用. 1、动机 您设计和开发软件系统,有许多需求需要考虑到。

    78650

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入

    前言: 有时候我们系统需要开放数据给手机App端或其他移动设备,不得不说Asp.net WebApi是目前首选 本节记录Asp.net MVC WebApi怎么利用Unity注入。...系列开头已经讲解了普通Asp.net MVC如何用Unity注入容器 不明白什么是IOC,DI,控制反转自行百度补脑,否则无法阅读本文 其实这也是一次技术上记录,因为找遍大百度居然没有可以用利用...Unity注入WebApi!...包含4个需要被注入类库,BLL,IBLL,DAL,IDAL 开发工具:VS2013+SQL2012(数据库不是必要) 开始: 1.新建Asp.Net MVC WebApi项目 ?...2.安装Unity.WebApi程序包解析一下,这里有依赖项:Unity >=4.0.1 (我们之前注入就只安装了Unity)所以Unity.WebApi是需要Unity4.0.1支持。 ?

    1.2K50

    .NET平台系列25:从 ASP.NET 迁移到 ASP.NET Core 技术指南

    每个处理程序负责记住并调用列表中下一个处理程序。 使用 ASP.NET Core ,应用程序入口点是 Startup,不再具有 Global.asax 依赖关系。...结合使用 OWIN 和 .NET Framework 使用管道应如下所示:using Owinusing System.Web.Http; namespace WebApi { //...在 ASP.NET应用中,开发人员依赖第三方库实现依存关系注入。 其中一个库是 Microsoft 模式和做法提供 Unity。...实现打包 UnityContainer IDependencyResolver 是使用 Unity 设置依存关系注入一个示例: 1 using Microsoft.Practices.Unity...有关依赖关系注入详细信息,请参阅依赖关系注入。 提供静态文件   Web 开发一个重要环节是提供客户端静态资源功能。 HTML、CSS、Javascript 和图像是最常见静态文件示例。

    2.2K20

    ASP.NET MVC Controller激活系统详解:IoC应用

    所谓依赖注入,就是由外部容器在运行时动态地将依赖对象注入到组件之中。...如果被选择构造函数具有相应参数,IoC容器在调用构造函数之前解析注册依赖关系并自行获得相应参数对象; 属性注入(Property Injection):如果需要使用到被依赖对象某个属性,在被依赖对象被创建之后...No 二、Controller与Model分离 在《MVC、MVP以及Model2[下篇]》中我们谈到ASP.NET MVC是基于MVC变体Model2设计。...我们沿用在《ASP.NET路由系统:URL与物理文件分离》中使用关于“员工管理”场景,如下图所示,本实例由两个页面(对应着两个View)组成,一个用于显示员工列表,另一个用于显示基于某个员工详细信息...我们通过Visual StudioASP.NET MVC项目模板创建一个空Web应用,并添加针对Unity两个程序集(Microsoft.Practices.Unity.dll和Microsoft.Practices.Unity.Configuration.dll

    1.8K90

    自定义Unity对象生命周期管理集成ADO.NET Entity Framework

    Unity中,从Unity 取得实例为 Transient。如果你希望使用多线程方式,就需要在组成使用lifecycle参数,这时候取出组件就不再是同一个了。...Unity IOC容器提供了如下几种生命处理方式: # Singleton:一个组件只有一个实例被创建,所有请求客户使用程序得到都是同一个实例。...下面我们来实现Unity集成ADO.NET Entity Framework工作: 1、利用Unity依赖注入,ObjectContext会给我们生成3个构造函数,类似于下面的代码: // Original...,一种是类仅有一个构造函数Unity 可以进行自动注入;另一种情况是,类包含多个构造函数,必须使用 Attribute 或者配置文件指定注入使用构造函数。...ObjectContext有多个构造函数,而且ObjectContext构造函数代码是Visual Studio 代码生成,最好选择是使用配置文件或者使用配置API指定注入使用构造函数。

    1K80

    控制反转和依赖注入模式

    一、控制反转和依赖注入两者搭配能像反射工厂那样解决程序集之间耦合问题,下面将从Asp.Net经典三层模式多方位讲解控制反转和依赖注入模式,是如何帮我们进行程序集之间解耦。...2、如果你不明白依赖倒置原则,你也可以这样理解,我们知道数据库程序不止一种,那相应我们数据层也不应该只有一种,打个比方,假设现在数据层是用SqlServer编写,如果某一天你Boss告诉你说,...,以前new权利,总是在我们手中,通过new方法,但是现在new权利交给了IOC容器 2依赖注入:通过控制反转移交new权利之后,我们就可以通过RegisterType(注册类型方式),告诉...打开NuGet,输出Unity(这个MSIOC框架),将它安装到我们项目中!...IDal; using Microsoft.Practices.Unity; namespace Web { public partial class WebForm1 : System.Web.UI.Page

    654100

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(6)-Unity 依赖注入

    前言 为了符合后面更新后重构系统,文章于2016-11-1日重写 本节重构一下代码,采用IOC控制反转,也就是依赖注入 您可以访问http://unity.codeplex.com/releases...得到最新版本Unity现在。...我们采用是构造函数注入,运行时注入。 【ASP.Net MVC3 】使用Unity 实现依赖注入 这是园内大虾写得这块知识点,大家进去看看 为什么要使用注入 我们反转了对依赖控制。...不是使用new关键字创建一个实例,而是将这种行为委托给了第三方实现(容器) ? 安装Nuget Unity包 分别按照在Apps.Web,Apps.BLL,Apps.Core中 ?...在Apps.Core中添加以下2个类:主要是注入配置使用 using System; using System.Collections.Generic; using System.Linq; using

    83170

    在ASP.NET MVC中使用Unity进行依赖注入三种方式第一种方法第二种方法第三种方法

    我们可以在三个阶段使用IoC实现上面所说解耦操作,首先需要简单介绍一下默认情况下Controller激活过程: 用户发送请求黑ASP.NET,路由系统对请求进行解析,根据注册路由规则对请求进行匹配...第一种方法       由上文2种可知,我们可以创建自己IControllerFactory对象实现依赖注入,然而我们可以通过直接继承DefaultControllerFactory并重写GetControllerInstance...以下是使用Unity创建继承自DefaultControllerFactoryUnityControllerFactory简单示例: namespace UnitySample { public...所以我们可以使用一个自定义实现自IControllerActivator借口对象来进行依赖注入。...所以我们就同样可以使用一个自定义IDependencyResolver类实现依赖注入

    97750

    C#.NET.NET Core技术

    Web 应用程序:使用 ASP.NET Core 构建。移动应用程序:使用 Xamarin 构建跨平台移动应用。游戏开发:使用 Unity(C# 是 Unity 游戏开发首选语言)。....Windows 特定功能:提供对 Windows API 访问和集成。使用场景Windows 桌面应用程序:使用 Windows Forms 或 WPF。Web 应用程序:使用 ASP.NET。....高性能:提供轻量级运行时。可扩展性:支持依赖注入,可轻松构建模块化应用程序。使用场景Web 应用程序:使用 ASP.NET Core。容器化应用程序:适合在 Docker 容器中运行。...构建一个简单 ASP.NET Core Web 应用程序以下是使用 ASP.NET Core 创建一个简单 Web 应用程序步骤。1....安装 .NET Core SDK从 .NET 官网 下载并安装 .NET Core SDK。2. 创建项目使用 .NET CLI 创建一个新 ASP.NET Core Web 应用程序。

    83200

    支持Visual Studio 2008和.NET 3.5企业类库4.0

    这个版本最大亮点是把IOC框架集成Unity进来了。 1、也许你还不知道Unity是微软模式与实践团队开发轻量级,可扩展依赖注入容器,支持依赖注入构造函数注入,属性注入,还支持方法调用注入。...如果你有使用其他IOC容器经验,例如Castle Windsor, SpringFramework.NET, StructureMap等。...Unity资料可参看Unity Application Block 发布,微软名为Unity依赖注入Application Block发布了。...可以通过Unity生成所需要企业类库对象,并把企业类库对象注入到你业务对象。这样可以很好解耦组件之间依赖关系,在企业类库所提供QuickStart上都有相应使用Unity例子。...2、支持WMI2.0,EntLib 4中,所有的应用代码块主要工作类型都有自己独立WMI类型对象,运行监控机制可以用类似SQL语句方式直接检索运行组件性能计数或配置属性情况,企业应用中运营监控是一项非常重要工作

    90790

    【半小时大话.net依赖注入】(一)理论基础+实战控制台程序实现AutoFac注入

    系列目录 第一章|理论基础+实战控制台程序实现AutoFac注入 第二章|AutoFac常见使用套路 第三章|实战Asp.Net Framework Web程序实现AutoFac注入 第四章|实战Asp.Net...》 理论基础 依赖 依赖,简单说就是,一个类需要另一个类协作来完成工作时候就产生了依赖。...Service需要使用Repository,有没有办法让我需要Repository自己注入到我这里来? 当然有,这就是我们将要实现依赖注入。...使用依赖注入后你会发现,C写完新仓储后,业务逻辑层(StudentService)是不需要改任何代码,所有的Service都不需要一个一个去改,直接在注入时候修改规则,不要注入以前老直接注入仓储就可以了...,把分配权限交给容器,StudentService内部需要使用StudentRepository,这时不应该让它自己new出来一个,而是通过容器,把StudentRepository注入到StudentService

    1.5K30

    控制反转-Ioc之Unity

    DI即控制反转,是将对具体实现类依赖转变为对接口依赖,这样在编程中,就可以发挥类多态性。我们先假设一台印钞机,功能是打印钞票,根据使用模板,可以印人民币(想到这里,我做梦都乐了)。...没错,这就是面向接口依赖反转,我们CashMachine从依赖CNYCashTemplate这个具体实现,变成了对ICashTemplate接口依赖,在上面我们采用是方法注入,我们也可以用构造函数注入...3.Unity基本使用 上面Infrustructure功能,我们使用就是Unity。...4.使用配置文件配置注入 但是,我们显然不满足于这样,我们还想把实现,彻彻底底从代码中移除,这里我们就可以借助配置文件来实现了。...(WEB项目是在web.config)里配置我们配置文件路径,在configuration节点中添加如下配置 <section name="<em>unity</em>" type

    67210

    Asp.net mvc 知多少(十)

    该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大特点是以面试问答形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次理解。...实例化类时候通过给类构造函数提供依赖项来实现依赖注入注入依赖可以在类任何地方直接使用。适用于类需要一个或多个依赖。...) 适用于类需要可选依赖,或者需要可交换实现时,比如Log4Net。...) 这种方式注入依赖到单一方法,改依赖仅仅被注入方法使用。...一个DI容器是一个机制用来创建依赖并当需要依赖时候自动注入需要依赖它自动基于请求创建对象并注入。DI容器用一种简单容易方式帮助我们管理应用程序依赖

    1.2K100

    Unity转向通用.NET CoreCLR

    欢迎关注,有任何问题可发送私信~ 在游戏引擎与开发技术日新月异今天,Unity选择总是引起业界广泛关注。...自2005年以来,Unity主要依赖于Mono来实现其跨平台特性,但随着技术进步和需求演变,其技术栈也在不断演进。...由于Unity早期iOS部署需求,Mono为其提供了一套高效且跨平台解决方案,允许开发者使用C#语言编写代码,并能在多个平台上高效运行。...IL2CPP是Unity为了解决性能和平台兼容性问题而开发一种新中间语言。IL2CPP将C#代码转换为C++代码,再编译成本地机器码,提供更高执行效率和更好平台兼容性。...三、.NET CoreCLR:开源、性能与跨平台完美结合 .NET CoreCLR是微软.NET Core框架一部分,它继承了.NET Framework丰富功能并进行了优化,更加适合现代云、Web

    1K10
    领券