Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mzm2010

Verificação AD para aplicação web

Recommended Posts

Pessoal estou com um probleminha. O programa que estou desenvolvendo para a empresa que trabalho deve fazer uma verificação AD do windows. Onde apenas os usuarios cadastrado no grupo devem ter permisao para abrir o site, mas esta aplicação está funcionando apenas quando rodo o programa na minha maquina local. Quando eu publico o programa gerando assim a pagina, essa verificacao nao esta funcionando, direcionando sempre para a pagina de bloqueio de acesso. O codigo para fazer a verificacao AD esta logo abaixo. Gostaria de saber se devo configurar algo no IIS e no web.config.

 

namespace site

{

public class verificaad

{

//

// Grupo no AD que deseja verificar se o usuário pertence a ele.

//

private const string grupoAD = @"NOTICIASUSER";

 

//

// Atributo para armazenar o usuário atual logado na máquina no intuito de reutilizá-lo quando necessitar

// fazer alguma operação que exija maior permissão na máquina.

//

internal static WindowsIdentity usuarioOriginal;

 

 

 

///////////////////////////////////////////////////////////////////////////////////////////////

//

// Método: autenticaUsuario

//

// Descrição: Autentica do Usuário no AD.

//

///

/// <summary>

/// Autentica do Usuário no AD.

/// </summary>

//

///////////////////////////////////////////////////////////////////////////////////////////////

public static bool autenticaUsuario()

{

// Pega o atual usuário autenticado no AD.

usuarioOriginal = WindowsIdentity.GetCurrent();

if (usuarioOriginal.IsAuthenticated)

{

if (pertenceAoGrupoAD(usuarioOriginal.Name.Replace(@"DOMINIO\", ""), grupoAD))

{

//

// O usuário pertence ao grupo especificado.

//

return true;

}

else

{

//

// O usuário não pertence ao grupo especificado.

//

return false;

}

}

else

{

return false;

}

}

 

///////////////////////////////////////////////////////////////////////////////////////////////

//

// Método: pertenceAoGrupoAD

//

// Descrição: Verifica se o usuário pertence a um certo grupo do AD.

//

///

/// <summary>

/// Verifica se o usuário pertence a um certo grupo do AD.

/// </summary>

/// <param name="userName">

/// Nome do usuário que deseja verificar.

/// </param>

/// <param name="role">

/// Nome do grupo do AD.

/// </param>

//

///////////////////////////////////////////////////////////////////////////////////////////////

public static bool pertenceAoGrupoAD(string userName, string role)

{

try

{

role = role.ToLowerInvariant();

DirectorySearcher ds = new DirectorySearcher(new DirectoryEntry(null));

ds.Filter = "samaccountname=" + userName;

SearchResult sr = ds.FindOne();

DirectoryEntry de = sr.GetDirectoryEntry();

PropertyValueCollection dir = de.Properties["memberOf"];

for (int i = 0; i < dir.Count; ++i)

{

string s = dir.ToString().Substring(3);

s = s.Substring(0, s.IndexOf(',')).ToLowerInvariant();

if (s == role) return true;

}

throw new Exception();

}

catch

{

return false;

}

}

 

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

este code verifica a existência do usuário

 

<%@ Language=VBScript %>
<%
if session("Logado")<>"ok" then 'Verifica se já está logado

VerDominio="HOME" 'Nome do Domínio da rede
UsuarioNT=trim(Request.ServerVariables("LOGON_USER")) 'Pegando o nome do usuário logado na estação

'Verifica se a variável está vazia
if len(UsuarioNT)=0 then
	Response.Write "Você precisa desativar o acesso anônimo ao site, para o Portal funcionar."
	Response.End
End if

'Quebrando variável de usuário
tempPos=InStr(UsuarioNT,"\")
DominioNT=Left(UsuarioNT,tempPos-1)	'Domínio
NomeNT=Mid(UsuarioNT,tempPos+1)		'Nome do usuário

Set objUser=GetObject("WinNT://"&DominioNT&"/"&NomeNT)	'Consultando AD

if DominioNT<>VerDominio then 'Não está no domínio
	lRedirPag="login_form.asp"	'Redireciona para a página com o formulário de login via Banco
	session.abandon()
else
	lRedirPag="pagina_principal.asp"

	session("Logado")="ok"
	session("userName")=NomeNT
end if
set objUser = nothing
else
lRedirPag="sua_pagina.asp"
end if
response.redirect lRedirPag
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.