我不能引用Microsoft.Owin.Security.AuthenticationManager,为什么?

时间:2018-02-13 11:47:17

标签: c# owin unity-container

我的网页上出现以下错误:

Server Error in '/' Application.

The current type, Microsoft.Owin.Security.IAuthenticationManager, is an interface and cannot be constructed. Are you missing a type mapping? 

我发现我应该将此代码放在Unityconfig.cs中以解决此问题:

container.RegisterType<IAuthenticationManager>(
            new InjectionFactory(
                o => System.Web.HttpContext.Current.GetOwinContext().Authentication
            )
        );

但问题是IAuthenticationManager不可见 enter image description here

虽然我已添加Owin.Security作为参考,但我有

using Microsoft.Owin.Security;

你能给我一些提示吗?

1 个答案:

答案 0 :(得分:3)

请注意,您尝试使用的界面(Microsoft.Owin.Security.IAuthenticationManager)不在Microsoft.Owin.Security.dll中,但实际上在Microsoft.Owin.dll中。检查顶部的两行,告诉您命名空间和程序集。所以你只需要添加对该程序集的引用。

对于这样的情况,它始终值得检查文档,因为命名空间并不总是等同于程序集名称。