Usar a autenticação do Windows em ASP.NET

estou a tentar usar a autenticação do Windows na minha ASP.NET aplicação. Sempre que tento ver o aplicativo, ele me envia para uma página de login. Como posso fazê-lo funcionar sem ter de fazer login manualmente através do navegador?

[6]}Web.config
  <system.web>
    <authentication mode="Windows"></authentication>
    <anonymousIdentification enabled="false"/>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    <customErrors mode="Off"></customErrors>
    <identity impersonate="true"></identity>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime />
  </system.web>

erro após actualização do IIS Express

Most likely causes:
No authentication protocol (including anonymous) is selected in IIS.
Only integrated authentication is enabled, and a client browser was used that does not support integrated authentication.
Integrated authentication is enabled and the request was sent through a proxy that changed the authentication headers before they reach the Web server.
The Web server is not configured for anonymous access and a required authorization header was not received.
The "configuration/system.webServer/authorization" configuration section may be explicitly denying the user access.

pedido posteriormente.config

<authentication>
  <anonymousAuthentication enabled="false" />
  <basicAuthentication enabled="false" />
  <clientCertificateMappingAuthentication enabled="false" />
  <digestAuthentication enabled="false" />
  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>
</authentication>
Author: unicorn2, 2016-04-29

5 answers

Usamos a autenticação do Windows para quase todas as nossas aplicações intranet, incluindo o SharePoint. Os funcionários devem fazer login se seu navegador não enviar automaticamente suas credenciais do Windows automaticamente para o site.

On IE, this is a matter of the browser's configuration. Eu acho que também existem maneiras de configurar o Chrome e o Firefox para enviar o login do Windows automaticamente. Eu acho que o Chrome vai seguir as configurações da Internet da janela (no cliente) assim como o IE. Tentar definir o utilizador Opções de autenticação para "Logon automático com o utilizador e senha actuais".

Veja abaixo a imagem para uma ilustração do local onde se encontra.

enter image description here

Note também que isto envolve o navegador do utilizador a enviar um Token Windows para a aplicação. A aplicação deve entender e confiar na fonte deste token, e isso funcionaria com o apoio de um "domínio" no qual o Usuário e o aplicativo residem. Eu acho que vai funcionar em uma única máquina (enquanto você está debugging), mas se você quer que isso funcione em vários computadores em uma rede, você precisa olhar para a criação de um domínio. Uma maneira típica de criar um domínio é o Diretório Ativo.

Depois diz-me.
 8
Author: Mzn, 2016-05-05 16:18:52

Autenticação do Windows com o IISExpress

Actualize a sua web.configuração

Certifica-te que a tua teia.o ficheiro de configuração tanto activa a autenticação do windows como nega a autenticação anónima. HttpContext.Current.User.Identity.Name ficará em branco se o aplicativo cair para a autenticação anônima. A sua configuração deve ser parecida com esta:

<authentication mode="Windows" />
<authorization>
    <deny users="?"/>
</authorization>
Erro 401.2 Não Autorizado Às vezes, você pode obter o erro 401.2 Unauthorized: Logon failed due to server configuration error. Se o fizer, verifique se tem Permissão para ver este diretório ou página com base nas credenciais que você forneceu. Certifique-se também que tem os métodos de autenticação ativados no servidor Web.

A actualizar o pedido.configuração

Também poderá ter de actualizar o pedido de endereço IISExpress.ficheiro de configuração (não se preocupe – também não sabia). Esta é essencialmente a versão de arquivo da ferramenta de configuração IIS, onde você pode configurar o próprio servidor web. Encontrar o pedido.configuracao o arquivo pode ser complicado. Pode estar em:

%profile % \documents\iisexpress\config\applicationhost.config

Ou

%profile % \my documents \ iisexpress\config\applicationhost.config

Assim que o encontrar, actualize as seguintes linhas (prestando especial atenção ao activo=true):

<windowsAuthentication enabled="true">
    <providers>
        <add value="Negotiate" />
        <add value="NTLM" />
    </providers>
</windowsAuthentication>

Este é o artigo

 8
Author: malbarmawi, 2018-08-07 06:04:36

Ao depurar a minha aplicação web em VS 2017, descobri que precisava de actualizar [a localização da solução]\.vs\config\applicationhost.configuracao. Substituí a secção de autenticação por:

        <authentication>
          <anonymousAuthentication enabled="false" userName="" />

          <basicAuthentication enabled="false" />

          <clientCertificateMappingAuthentication enabled="false" />

          <digestAuthentication enabled="false" />

          <iisClientCertificateMappingAuthentication enabled="false">
          </iisClientCertificateMappingAuthentication>

          <windowsAuthentication enabled="true">
            <providers>
              <add value="Negotiate" />
              <add value="NTLM" />
            </providers>
          </windowsAuthentication>

        </authentication> 

Mais aqui: https://stackoverflow.com/a/4813716/555142

 4
Author: dajo, 2018-04-06 20:21:15
  1. abrir o IIS (Windows + R 'inetmgr')
  2. Seleccione o servidor IIS (nó raiz)
  3. Duplo-Click - 'Authentication'
  4. autenticação do Windows-carregue com o botão direito e seleccione 'Activar'
  5. formulários autenticação-carregue com o botão direito e seleccione 'Disable'
  6. reiniciar o servidor IIS
 3
Author: Mihir Kale, 2016-05-02 13:51:35
Consegui pô-lo a funcionar removendo o fornecedor da negociação.
  <windowsAuthentication enabled="true">
    <providers>
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>
 2
Author: Antarr Byrd, 2016-05-08 20:43:22