Possiedo un'applicazione VB.Net che esegue l'autenticazione utilizzando l'utente Windows corrente senza chiedere la password. Controlla che questo utente sia membro di "MYDOMAIN \ ApplicationUsers" prima dell'avvio.Come convalidare il dominio di directory attivo in cui è in esecuzione la mia app?
Come verificare se questo è il dominio reale e non uno diverso con lo stesso nome? Ci sono certificati o chiavi pubbliche da convalidare localmente? Preferirei controllare questo offline, senza una macchina o un database di terze parti ecc.
Nello spazio dei nomi System.DirectoryServices.ActiveDirectory ci sono alcuni metodi Trust e Validate ma sembrano controllare solo la fiducia tra domini e l'uso di un nome di dominio solo.
Come stai verificando che l'utente corrente sia un membro di questo gruppo ora? Se si utilizzano query AD, è possibile utilizzare il SID dell'utente corrente e verificare che siano membri del gruppo. – tHand
Sto usando il metodo [IsInRole (stringa)] (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.user.isinrole (v = vs.80) .aspx) sul Oggetto My.Application.User, utilizzando il parametro stringa fornito nella mia domanda. Usando una stringa con il nome del dominio questo è "facilmente" falsificato creando un dominio canaglia. Il controllo del SID è interessante, non sono veri hash o cert ma se non c'è nulla di sicuro così sia. –
Sembra un problema di pollo/uovo. Ci sono funzioni .net per convalidare che l'utente è chi dicono di essere, ma che di solito implica chiedere loro una password. Se non si desidera chiedere loro, è necessario prendere la parola (in questo caso DOMAIN). Questa applicazione è pensata per essere portabile o all'interno di un'organizzazione? Se è all'interno di un'organizzazione, puoi usare altri indizi per fiutare un utente disonesto. – tHand