Pergunta

Estou desenvolvendo um novo site (ASP.Net, páginas VB codebehind, .Net 3.5) para substituir um site "ASP clássico".

Algumas das páginas são “públicas” e o restante requer autenticação – neste caso, isso é feito através da leitura de cartões CAC emitidos pelo DoD através do teclado.

Agora, para 'produção', eles configuram o IIS para que ele faça o desafio de autenticação (lendo o cartão e solicitando um PIN) quando atingir um determinado diretório (/secure neste caso) para que todas as páginas dessa árvore sejam protegidas.

Estou chegando ao ponto em que preciso ver algumas informações do cartão - mas quando eu "F5" o site que estou desenvolvendo, todo o material Request.Clientcertificate está vazio - não há nenhum 'desafio' acontecendo com o Servidor de desenvolvimento Cassini ASP.Net.

Vejo referências a "configurar o IIS para colocar SSL no diretório de destino" - mas não estou executando o IIS neste PC de desenvolvimento (nem o outro desenvolvedor que irá se deparar com isso em breve).O pessoal de suporte de rede fará isso quando o site for copiado para produção, mas preciso testar alguns recursos de segurança agora.

Como posso configurar o servidor que acompanha o VS2008 para ler a placa CAC e 'carregar' as variáveis ​​​​de servidor/sessão que preciso consultar?Como alternativa, há algo que eu possa colocar nas próprias páginas .aspx ou .aspx.vb que possa simular ou desencadear o desafio de segurança?

Desde já, obrigado.

Foi útil?

Solução

Resposta curta.A Cassini não suporta esse tipo de segurança.

Outras dicas

Espero que você tenha encontrado uma solução para isso agora ...mas, por precaução, direi que faço um desenvolvimento semelhante e me deparei com o mesmo problema.A única "solução" que encontrei foi simplesmente publicar o site/página da Web em um servidor com IIS configurado para exigir certificados de cliente, etc.

Claro, isso impede que você use o recurso "debug" no Visual Studio, mas sempre existe o método de injetar instruções de depuração no código [por exemplo: response.write() seguido pela response.end() se necessário]...Também construí uma página que usei para enumerar todas as strings disponíveis em request.clientcertificate(), e ainda mais tarde expandiu-o para executar um regex fornecido para pesquisar o certificado inteiro...

Espero que essas ideias sejam úteis!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top