Pergunta

Eu preciso disso rapidamente, mas passei as últimas horas pesquisando/me preocupando com o que seria melhor:

ASP.NET Forms autenticação

vs.

Token de cabeçalho personalizado:
No servidor

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
     if (string.IsNullOrEmpty(WebOperationContext.Current.IncomingRequest.Headers.Get("magic")))
     {
           throw new DataServiceException(403, "Sorry No Magic found");
     }
      else
     {
           base.OnStartProcessingRequest(args);
     }
}

No Formulários do Windows cliente

static void datProvider_SendingRequest(object sender, SendingRequestEventArgs e)
{
    e.RequestHeaders.Add("magic","HASHED_userbased_token");
}

Considerações:

  • Eu nunca usei o Forms Auth (mas posso aprender?)
  • O registro do usuário é complexo (os registros dos funcionários são verificados e os usuários são criados com base neles)
  • Eu tenho meus próprios grupos de usuários personalizados/tabelas de permissão/sistema
  • Não há SSL (o cliente não se importa com esse fato, os dados não são tão valiosos)
  • Parece que estou mais no controle com o cabeçalho personalizado.
Foi útil?

Solução

Use um token de cabeçalho personalizado. A Auth Forms pressupõe que um humano estará autenticando para o serviço, o que seria uma coisa bastante estranha para acontecer em um ponto final OData. O ODATA é mais sobre computadores ou serviços autenticando para o serviço ODATA.

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