Pergunta

Eu estou trabalhando em um site onde os usuários podem fazer login para obter mais informações particulares.Meu cliente tem outro site mais onde que usa a autenticação do nt para acessá-lo.

O que eles querem fazer é ter um button no site que eu estou trabalhando em área privada que irá enviá-los para o nt autenticado o site, mas não obrigá-los a fazer logon no site, em vez de passar a nome de usuário e palavra-passe que eles usaram para entrar em meu site para outro site para eles.

É possível fazer isso?e como eu poderia fazer isso?Não há melhor maneira de fazer isso?

Foi útil?

Solução

Aqui está uma (não testado) teoria, os detalhes do que vai depender muito de que tipo de autenticação para o site do Sharepoint irá aceitar.Eu vou enfrentar Básico, já que é o mais fácil.

Você vai escrever algum JavaScript que usa XMLHttpRequest para enviar uma solicitação para o site do Sharepoint, e adicione seu nome de usuário e senha para os cabeçalhos de solicitação.O seu navegador irá executar que o JavaScript, e ficar conectado ao site do Sharepoint.

Agora, quando clicar no link, o navegador do cliente deve ter as credenciais em cache para enviar para o site do Sharepoint.

Possíveis problemas:

  • XMLHttpRequest não permitir que a cruz de domínio de autenticação
  • O navegador e XHR não partilha de informação de autorização
  • O Sharepoint e o XHR não pode concordar em método de autenticação

Outra opção é proxy para a conexão ao Sharepoint, que permite que você faça o login no servidor (ignorando XHR limitações e segurança do browser) - mas a necessidade de carga no seu servidor e, eventualmente, alguma URL de destino problemas.

Outras dicas

Como vai a outro site validar o seu nome de utilizador e a palavra-passe?

Idealmente, seu site não deve ser mesmo lembrar a senha do usuário para ser capaz de passá-lo para outro site (você armazenar hashes de palavra-passe, não a própria senha, e use apenas o fato de senha durante a validação).

Que se o seu site fornecido um token para o utilizador, que apresenta esse token para o novo site, que por sua vez solicita o seu site para validar o token.Basicamente, o segundo site é confiar em você para dizer-lhes quem é o usuário.

Tudo isso divide-se o segundo site é, na verdade, usando as contas do Windows para outra coisa do que apenas obter um nome de utilizador (por exemplo, permissões de arquivos subjacente), desde que o usuário não está conectado à conta de usuário do Windows neste cenário.

Se você necessita de se autenticar contra o segundo site, você pode precisar para gerar um novo thread e chama o windows API LogonUser.Depois de ter o token de segurança, atribua-o ao novo thread e fazer a sua ligação através de um thread.

LogonUser exige um aprimoramento privilégios, e não é de código Gerenciado, de forma que há alguns muito graves soluços de usá-lo.Mas que foi a única alternativa que eu tenho sido capaz de encontrar para obter autenticação de Formulários do site falando de um Windows Autenticado Serviço/Site.

Espero que isso ajude.

É este um ambiente de intranet?Se assim não deve ter para fazer o login de qualquer maneira.Se o sharepoint é a instalação usando "Autenticação Integrada" e o site está listado como um site confiável no internet explorer, o navegador vai usar lá de rede cred para login automático.Este pode ser o programa de instalação no firefox bem.

Os usuários não serão capazes de se conectar ao NTLM site diretamente, sem a obtenção de um desafio NTLM.Eu gostaria de escrever o que seria efetivamente ser um proxy NTLM site;eu.e o código do lado do servidor terá credenciais para se conectar ao NTLM site, e ele passa através dos pedidos de seus usuários.

Como você mencionou do SharePoint (cuspir) tenha em mente que o SharePoint tem um monte de Serviços da Web que você pode usar para isso (ao invés de fazer capturas do ecrã).

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