WCF Forms Based Authentication Via Web App - Credenciais Passando

votos
0

Eu tenho um serviço web simples, onde a segurança é tratada através de autenticação baseada em formulários.

WCFTestService.ServiceClient myService = new
          WCFTestService.ServiceClient();
myService.ClientCredentials.UserName.UserName = user;
myService.ClientCredentials.UserName.Password = secret;
lblResult.Text = myService.GetData(1231);
myService.Close();  

Eu estou acessando este através de um aplicativo web. Então, eu quero fazer o acima uma vez, mas para a segurança / desempenho não tem que fazê-lo novamente. Eu estava pensando em algo como o do abaixo, mas como eu estou usando FormsAuthentication este trabalho não vai ...

//Obtain the authenticated user's Identity and impersonate the original caller
using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
{
  WCFTestService.ServiceClient myService2 = new WCFTestService.ServiceClient();
  lblResult.Text = From Logged On Credentials+myService2.GetData(1231);
  myService2.Close();
}
Publicado 19/05/2009 em 16:13
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

O que você está tentando fazer é estabelecer uma "sessão segura" entre o seu cliente e seu serviço. Este é um conceito que só vai trabalhar com o wsHttpBinding - por isso, se você não está usando esse particular de ligação, que não vai funcionar.

Para estabelecer uma sessão segura, você precisa definir um número de propriedades de configuração específicas do cliente e arquivos de configuração do servidor - você pode certamente encontrar essas configurações através da leitura dos docs (procure por "establishSecurityContext") ou check-out excelente WCF de Michele Leroux Bustumante screencast em fundamentos de segurança no MSDN.

Mas realmente: eu não recomendo tentando usar sessão segura por todos os meios. Em circunstâncias normais, usando serviços por chamada é a opção preferida, ea sobrecarga de re-autenticação com cada chamada de serviço é realmente insignificante.

bagaço

Respondeu 21/05/2009 em 20:00
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more