Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Ocasionalmente, poderá pretender uma aplicação para verificar o nome de utilizador de um utilizador e palavra-passe (doravante referido como credenciais). Pode fazê-lo duas formas diferentes, dependendo do sistema operativo em que a aplicação é executada.
Este artigo descreve todas as formas comuns para verificar as credenciais do utilizador e os requisitos especiais para cada método.
Nota Recolher credenciais de utilizador a partir de uma aplicação de modo de utilizador podem ser incomodativos aos utilizadores e podem fornecer uma falha de segurança possíveis no ambiente informático empresarial. O requisito de início de sessão unificado (requisito que o utilizador só deve ser pedido para escrever as respectivas credenciais uma vez no ecrã de CTRL + ALT + DEL), foi adicionada para os requisitos de logótipo do Microsoft BackOffice por estes motivos muito. É importante garantir que realmente necessita de reunir credenciais e que não é mais apropriado outro método de validação de cliente/servidor. Consulte a documentação segurança no Platform SDK para obter mais informações sobre a representação e programação servidores protegidos.
LogonUser API foi disponível e documentadas desde o Windows NT 3.51 e é normalmente utilizado para verificar as credenciais de utilizador. Esta API está disponível no Windows NT, Windows 2000 e Windows XP. Infelizmente, existem algumas restrições sobre a utilização LogonUser que nem sempre convenientes satisfazer.
O primeiro e maiores destas restrições é que no Windows NT e Windows 2000, o processo que está a chamar LogonUser tem de ter o privilégio SE_TCB_NAME (em Gestor de utilizadores, trata-se o direito "Actuar como parte do sistema operativo" à). O privilégio SE_TCB_NAME é muito poderoso e deverá não ser concedido a qualquer utilizador arbitrário apenas para que estes possam executar uma aplicação que necessita para validar as credenciais. O método recomendado é chamar LogonUser a partir de um serviço que está a ser executado na conta sistema local, porque a conta de sistema local já tem o privilégio SE_TCB_NAME.
Nota API do Win32 LogonUser não requer privilégios TCB no Windows Server 2003, contudo, para compatibilidade de nível inferior, esta é ainda a melhor abordagem.
No Windows XP, já não é necessário que um processo ter o privilégio SE_TCB_NAME para chamar LogonUser. Por conseguinte, o método mais simples para validar as credenciais do utilizador no Windows XP, é chamar a API LogonUser.
Um problema com LogonUser é que a API não está implementada no Windows 95, Windows 98 ou Windows Millennium Edition.
Outra opção, é possível utilizar o Security Support Provider Interface (SSPI) para efectuar um início de sessão estilo na rede com fornecidas credenciais de utilizador. Este método de validação tem a vantagem de não requerer quaisquer privilégios especiais, bem como trabalhar em todas as versões do Windows. O resultado final de utilizar os serviços SSPI para validar as credenciais é um início de sessão é semelhante a chamar a API LogonUser com o tipo de início de sessão LOGON32_LOGON_NETWORK. A maior desvantagem a este tipo de início de sessão é que consegue aceder remoto recursos de rede depois de a representar um início de sessão do tipo de rede. Se a aplicação está a chamar LogonUser com o tipo de início de sessão LOGON32_LOGON_INTERACTIVE incapacidade de solução Windows NT para efectuar a delegação, em seguida, o SSPI/validação de início de sessão, provavelmente, não será uma alternativa viável.
O código de exemplo fornecido abaixo mostra como chamar os serviços SSPI para efectuar a validação de credenciais.
Para utilizar este método no Windows 95, Windows 98 e Windows Millennium Edition, terá também de activar os serviços de segurança NTLM abrir painel de controlo, rede, controlo de acesso e, em seguida, seleccionando o controlo de acesso a nível de utilizador.
No Windows XP, o valor de registo ForceGuest estiver definido para 1 por predefinição na seguinte chave do registo:
Num computador com o Windows XP que seja membro de um grupo de trabalho:
Se ForceGuest estiver activada (definida como 1), SSPI sempre irá tentar iniciar sessão utilizando a conta de convidado.
Se a conta de convidado estiver activada, um início de sessão SSPI terá êxito como convidado, as credenciais de utilizador.
Se a conta de convidado está desactivada, um início de sessão SSPI falhará mesmo para credenciais válidas.
Se ForceGuest estiver desactivado (definido como 0), SSPI irá iniciar sessão como o utilizador especificado.
Além disso, se a conta de convidado estiver activada, o início de sessão SSPI poderá ter êxito como convidado credenciais de utilizador que não são válidos. O código de exemplo C neste artigo demonstra como pode verificar o token de acesso do contexto de segurança estabelecidas. A função ajuda IsGuest o código de exemplo mostra como pode verificar que o início de sessão ocorreu como o utilizador especificado, ou como convidado.
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 180548
(http://support.microsoft.com/kb/180548/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.