tag net mvc example asp active c# windows-authentication asp.net-core asp.net-core-mvc

c# - mvc - Autenticación de Windows en asp.net 5



tag helpers asp net core (9)

Además de las otras respuestas aquí, que son solo para IIS, puede habilitar la autenticación de Windows en un proyecto ASP.NET 5 autohospedado (probado contra beta 7 y beta 8) agregando lo siguiente en la Configure Startup.cs método, antes de la aplicación. app.UseMvc o similar que desee proteger:

ACTUALIZACIÓN PARA BETA 8

// If we''re self-hosting, enable integrated authentication (if we''re using // IIS, this will be done at the IIS configuration level). var listener = app.ServerFeatures.Get<WebListener>(); if (listener != null) { listener.AuthenticationManager.AuthenticationSchemes = AuthenticationSchemes.NTLM; }

RESPUESTA ANTERIOR PARA BETA 7

// If we''re self-hosting, enable windows/integrated authentication. // For IIS, this needs to be configured in IIS instead, and the // following will have no effect. if ((app.Server as ServerInformation) != null) { var serverInformation = (ServerInformation)app.Server; serverInformation.Listener.AuthenticationManager.AuthenticationSchemes = AuthenticationSchemes.NTLM; }

Adaptado del ejemplo oficial de MusicStore .

Si está depurando con Visual Studio 2015 con IIS Express, puede activar la autenticación de Windows a través de una casilla de verificación en la página de propiedades de depuración para un proyecto ahora, en lugar de meterse con el archivo applicationhost.config . No pude lograr que la solución web.config funcionara para la depuración de IIS Express, arroja un error acerca de que la configuración no es válida en ese nivel. Tenga en cuenta que esto no funciona actualmente en beta 8 - vea este problema

Estoy creando una aplicación de intranet en ASP .NET 5, MVC 6. Quiero saber cómo habilitar la autenticación de Windows. La plantilla de proyecto predeterminada solo admite cuentas de usuario individuales.


Como está creando una nueva aplicación, puede cambiar el tipo de autenticación haciendo clic en Change Authentication . Aparecerá una selección donde puede cambiar el tipo de letra a Autenticación de Windows.


Con el alojamiento IIS, puede agregar un archivo web.config a su directorio wwwroot con configuraciones IIS para su aplicación.

web.config

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <security> <authentication> <windowsAuthentication enabled="true" /> <anonymousAuthentication enabled="false" /> </authentication> </security> </system.webServer> </configuration>


El archivo $(ProjectDir)/Properties/launchSettings.json activará Visual Studio para generar un archivo web.config cuando se depure adecuadamente para IISExpress que tendrá el nodo <authentication/> establecido de acuerdo con la configuración de inicio.

El siguiente es un ejemplo launchSettings.json

{ "iisSettings": { "windowsAuthentication": true, "anonymousAuthentication": false, "iisExpress": { "applicationUrl": "http://localhost:65070/", "sslPort": 0 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "Hosting:Environment": "Development" } }, "web": { "commandName": "web", "environmentVariables": { "Hosting:Environment": "Development" } } } }

Pero también use la aplicación de extensión.UseIISPlatformHandler app.UseIISPlatformHandler(); en lugar de manipular al oyente. La extensión configurará un middleware que solicitará automáticamente NTLM y traducirá los identificadores apropiados de IIS.

Al implementar en IIS, si está utilizando WebListener , debe agregar el nodo de authentication usted mismo a web.config . Si está utilizando HttpPlatformHandler (que recomiendo personalmente) y proxys para kestrel, agregue forwardWindowsAuthToken="true" al nodo httpPlatform en web.config .


Hice todo lo que encontré en internet, nadie trabajó. Entonces, busqué los archivos de configuración de aspnet 4.5 y vi que usa:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>

en el archivo .csproj, acabo de copiar al archivo .xproj de aspnet 5 y funcionó.


La respuesta de Mark sigue siendo válida en ASP.Net RC1. Hay algunos pasos adicionales para unir todo (no tengo suficiente reputación para comentar sobre su solución):

  1. Instalar WebListener desde NuGet
  2. Agregue los siguientes usos a Startcup.cs:

    using Microsoft.AspNet.Http.Features; using Microsoft.Net.Http.Server;

  3. Agregue el fragmento de código de Mark en el método Configure antes de la aplicación.

    // If we''re self-hosting, enable integrated authentication (if we''re using // IIS, this will be done at the IIS configuration level). var listener = app.ServerFeatures.Get<WebListener>(); if (listener != null) { listener.AuthenticationManager.AuthenticationSchemes = AuthenticationSchemes.NTLM; }

  4. Para depurar esto, debe agregar el destino de ejecución de WebListener en project.json , como Mark señaló en una respuesta diferente:

    "commands": { "weblistener": "Microsoft.AspNet.Server.WebListener --config hosting.ini", "web": "Microsoft.AspNet.Server.Kestrel" },

  5. Elija weblistener en lugar de IIS Express of web (Kestrel) para depurar su aplicación.


Necesita configurar manualmente IIS Express (en VS2015 CTP6). Para ello, edite el archivo applicationhost.config. (C: / Usuarios / su nombre de usuario / Documentos / IISExpress / config / applicationhost.config)

En la etiqueta de configuración agregue esto:

<location path="{your site name}"> <system.webServer> <security> <authentication> <windowsAuthentication enabled="true" /> <anonymousAuthentication enabled="false" /> </authentication> </security> </system.webServer> </location>


Para RC1 e IISExpress desde una aplicación web vacía:

  • Haga clic con el botón derecho en el proyecto web, seleccione Properties
  • Haga clic en la pestaña Debug , marque Enable Windows Authentication

Esto afectó a ~/Properties/launchSettings.json siguiente manera:

"windowsAuthentication": true, "anonymousAuthentication": false,


Si desea habilitar la autenticación de Windows en el proyecto web actual:

En el explorador de soluciones, haga clic derecho en el sitio web y seleccione "Ventana de propiedades"

Establezca "Autenticación anónima" en "Deshabilitado"

Y establezca "Autenticación de Windows"

Ejecute el proyecto y todo estará bien.