Karbust Posted June 28, 2018 at 01:15 PM Report #611158 Posted June 28, 2018 at 01:15 PM Boas Estou a acabar o meu programa para a PAP e descobri que não consigo obter os grupos a partir de um computador fora do domínio (dentro do domínio funciona tudo bem)... Esta é a função: public bool[] IsUserGroupMember(string sUserName, string sGroupName, string sGroupName2) { UserPrincipal oUserPrincipal = GetUser(sUserName); GroupPrincipal oGroupPrincipal = GetGroup(sGroupName); GroupPrincipal oGroupSecundary = GetGroup(sGroupName2); if (oUserPrincipal != null && oGroupPrincipal != null && oGroupSecundary != null) { return new bool[] {oUserPrincipal.IsMemberOf(oGroupPrincipal), oUserPrincipal.IsMemberOf(oGroupSecundary)}; } return new bool[] {false}; } Estas são as funções chamadas: public PrincipalContext GetPrincipalContext() { PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, Dominio, stringAD, @Adminlogin, @Adminpass); return oPrincipalContext; } public UserPrincipal GetUser(string sUserName) { PrincipalContext oPrincipalContext = GetPrincipalContext(); UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, sUserName); return oUserPrincipal; } public GroupPrincipal GetGroup(string sGroupName) { PrincipalContext oPrincipalContext = GetPrincipalContext(); GroupPrincipal oGroupPrincipal = GroupPrincipal.FindByIdentity(oPrincipalContext, sGroupName); return oGroupPrincipal; } Um print do código: Como já disse em cima, isto funciona se for num computador do domínio. Consigo fazer ping ao domínio, e também o tenho a apontar para o IP da máquina no ficheiro hosts. O firewall da máquina está desativado e corre no VMware com Windows Server 2012 R2. Alguém tem alguma ideia? Obrigado
antoniocampos Posted June 28, 2018 at 09:06 PM Report #611160 Posted June 28, 2018 at 09:06 PM Quando estás no domínio as credenciais de login no Windows são usadas no teu pedido, se não estás autenticado no domínio não há permissões para ler! O truque que podes usar é executar o teu programa com o comando runas e passar como parâmetro o domínio\utilizador e password.
Karbust Posted June 28, 2018 at 10:13 PM Author Report #611161 Posted June 28, 2018 at 10:13 PM 1 hora atrás, antoniocampos disse: Quando estás no domínio as credenciais de login no Windows são usadas no teu pedido, se não estás autenticado no domínio não há permissões para ler! O truque que podes usar é executar o teu programa com o comando runas e passar como parâmetro o domínio\utilizador e password. Mas há algo interessante... Consigo criar utilizadores normalmente dentro do active directory, editar utilizadores, fazer login... Apenas dá erro ao verificar se o utilizador não estiver dentro do grupo, o mesmo comando com o utilizador dentro do grupo não dá erro nenhum...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now