Serviço Web do ASP.NET dentro do Aplicativo de Autenticação de Formulários

Eu tenho um aplicativo ASP.NET existente que implementa a Autenticação de formulários em todo o site. O aplicativo é implementado em várias instâncias (por exemplo, customer1, customer2, test, dev, etc ...), com um banco de dados separado por instância. SSL está em jogo. A configuração da instância é feita por meio de um arquivo de configuração XML.

Eu tenho um novo requisito para permitir upload / download de determinados dados, que gostaria de implementar como um serviço da web público.

Meu pensamento inicial aqui foi desativar seletivamente a autenticação de formulários para um subdiretório do aplicativo (por exemplo, ~ / Services) e, em seguida, fazer a autenticação por meio de um cabeçalho SOAP ou similar.

No entanto, não estou encontrando uma maneira de desativar seletivamente a autenticação de formulários.

Pergunta: Existe uma maneira de fazer isso? Eu tentei a tag <location> na configuração da web sem sucesso.

Se não, quais são as suas recomendações sobre como configurar isso? Eu posso pensar nas seguintes opções:

1) Crie um novo projeto "Serviços" na minha solução e, em seguida, configure um aplicativo IIS ASP.NET separado nesse diretório em cada instância. (Pro: acesso fácil à configuração da instância, que pode ser necessária no futuro. Con: sobrecarga de configuração para cada instância relevante).

2) Crie uma solução "Serviços" separada que faça referência aos assemblies necessários da solução de aplicativo e hospede-a como um aplicativo ASP.NET separado. Em seguida, pesquise a cadeia de conexão db com base no UserName fornecido no cabeçalho SOAP. (Pro: aplicativo único para configurar no IIS. Con: Não é fácil acessar a configuração da instância.)

3) ??

Esclarecimento: eu vi a resposta aqui:Substituir a autenticação de formulários ASP.NET para uma única página, mas o uso de uma marca de localização não está ajudando (as solicitações para o serviço da Web ainda são redirecionadas). As seções relevantes no meu web.config são assim:

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"/>
  </authentication>
  <authorization>
    <deny users="?"/>
    <allow users="*"/>
  </authorization>
</system.web>

<location path="~/Services/MyService.asmx">
  <system.web>
    <authentication mode="None" />
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

questionAnswers(3)

yourAnswerToTheQuestion