Híbrido de Autenticação do Windows e Autenticação de Formulários no ASP.NET MVC 4

Nós temos um aplicativo de intranet ASP.NET MVC 4. Estamos usando a Autenticação do Windows e esse aspecto funciona bem. As credenciais do usuário são usadas e podemos acessar essas credenciais do aplicativo da web.

O que realmente queremos é algum tipo de modo híbrido, no entanto. Queremos obter as credenciais do usuário no navegador, mas também queremos verificar se o usuário está no banco de dados do nosso aplicativo. Se o usuário estiver no banco de dados, ele poderá continuar. Se não estiverem, queremos redirecioná-los para uma página pedindo credenciais alternativas. O que estou fazendo agora é, emGlobal.asax.csEu tenho umApplication_AuthenticateRequest método e estou verificando se o usuário está autenticado. Se eles estiverem e suas informações de cookie não refletirem o fato de que eles estão conectados ao sistema, eu os conecto e configuro alguns cookies com informações sobre o usuário. Se eles não estiverem autenticados, eu os redireciono para uma página de login. Não podemos usar as funções do AD por motivos envolvidos com a política da empresa, por isso precisamos usar o banco de dados para autenticação adicional.

Estou supondoApplication_AuthenticateRequest não é o lugar para fazer isso, mas talvez seja. Mas basicamente precisamos de um local para filtrar as solicitações de autenticação. Mas, além disso, essa implementação me leva a outro problema:

Temos determinados URLs em nosso aplicativo que permitem acesso anônimo. Eu já adicionei<location> tags para o web.config para estes. O problema é que, quando chamadas anônimas são feitas para eles,Application_AuthenticateRequest e tenta registrar o usuário no banco de dados. Agora, posso adicionar códigoApplication_AuthenticateRequest para lidar com esses URLs e esse é atualmente o meu plano, mas se eu escrever eApplication_AuthenticateRequest não é o lugar para fazer isso, então eu prefiro descobrir isso agora do que mais tarde.

questionAnswers(1)

yourAnswerToTheQuestion