Search code examples
c#owinunity-container

I cannot reference Microsoft.Owin.Security.AuthenticationManager, why?


I get the following error on my page:

Server Error in '/' Application.

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

I founded out that I should put this code in Unityconfig.cs to resolve this problem:

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

But the problem is that the IAuthenticationManager is not visible enter image description here

although I have added the Owin.Security as reference, I have the

using Microsoft.Owin.Security;

Can you please give me some hints?


Solution

  • Note that the interface you are trying to use (Microsoft.Owin.Security.IAuthenticationManager) isn't in Microsoft.Owin.Security.dll but is actually in Microsoft.Owin.dll. Check the two lines at the top that tell you both the namespace and the assembly. So you just need to add a reference to that assembly.

    For situations like this, it's always worth checking the docs as the namespace doesn't always equate to the assembly name.