ASP.NET Core 2.0 HttpSys Windows Authentication fails with Authorize attribute (InvalidOperationException: No authenticationScheme was specified)
While writing up the post, I remembered coming across this subsection of the migration guide. It says to add
services.AddAuthentication(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
to the ConfigureServices
function.
I initially thought that this wouldn't apply to HttpSys, given the full name of the constant (especially the IISIntegration
threw me off). Moreover, as of this writing, the HttpSys documentation completely fails to mention this.
For those targeting the full .NET Framework, this requires installing the Microsoft.AspNetCore.Authentication
NuGet Package.
EDIT
As Tratcher points out, there is a similar constant from the HttpSys
namespace you should rather use:
Microsoft.AspNetCore.Server.HttpSys.HttpSysDefaults.AuthenticationScheme
Andreas' answer got me on the right path but this is what worked for me:
Added package reference to Microsoft.AspNetCore.Authentication
and then for Startup.cs
using Microsoft.AspNetCore.Server.IISIntegration;
public void ConfigureServices(IServiceCollection services)
{
...
services.AddAuthentication(IISDefaults.AuthenticationScheme);
...
}
Another thing, if you've already added services.AddAuthentication(IISDefaults.AuthenticationScheme); make sure to turn on an authentication type (windows, forms) in iis under the app -> authentication. Mine were all disabled and was getting this error even with the code in place.