Você pode conseguir fazer o que quiser definindo o endereço IP e as restrições de domínio do site. É uma opção no Gerenciador do IIS.
Eu tenho um site .NET (MVC2) que está em desenvolvimento. Eu o implantei em alguma infra-estrutura de produção e testei pela Internet com acesso anônimo (como será quando estiver ao vivo) e funciona bem. Entre agora e a data de ativação, gostaria de restringir o acesso a um pequeno grupo de teste.
No entanto, quando eu desativo o acesso anônimo (estou usando o IIS 7 no Windows 2008 R2 de 64 bits) e habilito a autenticação básica, duas coisas dão errado: primeiro, ele interfere na autenticação do site e redireciona para o configurado página de login do site e, por algum motivo, as folhas de estilo param de "funcionar". Ou seja, o site aparece como se não tivesse folhas de estilo, mesmo que estejam sendo baixados corretamente (como visto no Fiddler / Firebug).
O que eu quero é proteger o acesso ao servidor - eu não quero usar a autenticação básica como o mecanismo de autenticação para o site MVC - que é tratado pela autenticação de formulários padrão. Eu simplesmente quero impedir que as pessoas espiem o site antes que ele seja publicado.
Eu já tive isso antes, e sempre lutei com a falta de uma funcionalidade fácil / óbvia de "proteger este servidor com uma senha".
Deve haver uma resposta simples. (Estou pensando em um funcional equivalente a um arquivo .htaccess, mas para o IIS)?
[UPDATE] Na sequência do meu quase-erro (veja a resposta abaixo), o que eu quero é a autenticação do Windows para controlar o acesso ao site, e autenticação ASP.NET para controlar a interação do usuário com o site (sua identidade, se aparecer log in / out , etc.)
Você pode conseguir fazer o que quiser definindo o endereço IP e as restrições de domínio do site. É uma opção no Gerenciador do IIS.
OK - então isso pode ter sido meu erro. A fim de obter o IIS / ASP.NET jogando muito bem, você não pode simplesmente confiar no módulo de autenticação do IIS. Embora eu estivesse ocupado ativando / desativando opções no snap-in do gerenciador do IIS, o problema que estava tendo (o redirecionamento) foi causado por uma configuração web.config:
<authentication mode="Forms">
<forms loginUrl="~/logon" protection="All" path="/" />
</authentication>
Independentemente da opção selecionada no IIS (Anônimo, Básico, Windows, Formulários, etc.), o web.config substitui / interfere na seleção.
A resposta, portanto, é substituir o elemento de autenticação no web.config por um que declare a autenticação do Windows:
<authentication mode="Windows"></authentication>
E, em seguida, para remover o acesso anônimo por meio do módulo IIS e selecione Básico.