Inquiridor
Active Directory - Valor RID

Pergunta
-
Bom dia pessoal, estou com uma dúvida ao manipular dados vindos do Active Directory.
Não consigo fazer verificação no valor do RID.
Após fazer a validação de usuário e senha, a qual está funcionando normalmente, eu consigo mostrar na tela os dados do usuário que estão no AD, tais como, FullName, Password, SID e RID.
No entanto esses mesmos valores eu nao consigo verificar em IF e nem jogá-los em query SQL.
Exemplo:
Set objUserWinNT = GetObject("WinNT://" & strDomain & "/" & strUser & ",user")
(Dados do usuário)
FullName = "&objUserWinNT.FullName&"
Name = "&objUserWinNT.Name&"
ObjSid = objUserWinNT.get("objectSid")
ObjectSid = "&SDDL_SID(ObjSid)&"
ObjectRid = "&GET_RID(SDDL_SID(ObjSid))&" (valor que eu quero fazer a verificação)
Response.Write(" < input type=hidden name=txtrid value="&GET_RID(SDDL_SID(ObjSid))&" > ")
if Request("txtrid") <> "" then
entre
else
saia
end if
No IF acima, o valor do request que deveria ser o mesmo valor que eu consigo mostrar na tela não é preenchido.
Então a página passa diretamente e sai da mesma.
Tentei jogar o valor dentro de um campo hidden, e dando response no mesmo o valor é mostrado dentro do campo, porém assim mesmo não consigo passar o valor para o IF.
Alguém tem alguma idéia?!
Será que os valores vindos do AD precisam de alguma complementação?!
Agradeço a ajuda.
[]s
Todas as Respostas
-
-
-
Mows então é por isso que não está entrando no if, se voce já tem uma variavel na mesma página voce pode utilizar esta variavel local
Exemplo:
if ObjectRid <> "" then
Agora o input voce criou dinamicamente então ele existe na página, mas ele não foi submetido pelo "form" por exemplo, entao quando voce da um Request("txtrid") no cabeçalho da página este parâmetro nem existe ainda, por isso entra sempre no else.
Talvez assim já funcione pra voce
if Request("txtrid") <> "" Or ObjectRid <> "" then
...
end if
Abraço
Estevam
-
Luiz Estevam wrote: Mows então é por isso que não está entrando no if, se voce já tem uma variavel na mesma página voce pode utilizar esta variavel local
Exemplo:
if ObjectRid <> "" then
Agora o input voce criou dinamicamente então ele existe na página, mas ele não foi submetido pelo "form" por exemplo, entao quando voce da um Request("txtrid") no cabeçalho da página este parâmetro nem existe ainda, por isso entra sempre no else.
Talvez assim já funcione pra voce
if Request("txtrid") <> "" Or ObjectRid <> "" then
...
end if
Abraço
Estevam
É verdade Estevam. Funcionou, em partes.
Ainda não consigo jogar o valor do txtrid dentro da query SQL.
Eis o meu select que está dentro do IF:
" SELECT CODUSUARIO, RID, STATUS " & _
" FROM TABELA " & _
" WHERE STATUS = 1 AND RID = '"&Request("txtrid")&"' "
To fazendo algo errado ainda?!
-
Mows não estou entendendo um coisinha só, porque voce não usa as variaveis locais que voce já criou em vez de tentar regastar os valores pelo Request. tipo assim:
if ObjectRid <> "" then
" SELECT CODUSUARIO, RID, STATUS " & _
" FROM TABELA " & _
" WHERE STATUS = 1 AND RID = '"& ObjectRid &"' "
end if
Abraço
Estevam
-
Se eu coloco o ObjectRid no select o mesmo fica assim dando um response:
SELECT CODUSUARIO, RID, STATUS FROM TABELA WHERE STATUS = 1 AND RID = '&GET_RID(SDDL_SID(ObjSid))&'
Se eu coloco o '&GET_RID(SDDL_SID(ObjSid))&' no select o mesmo fica assim dando um response:
SELECT CODUSUARIO, RID, STATUS FROM TABELA WHERE STATUS = 1 AND RID = 0'
E o valor dentro do campo txtrid é 2079.
Por isso perguntei se alguem sabia como que esses valores vem do AD, porque ta bem estranho.