Recuperare l'utenza di dominio
baltica
baltica non è online. Ultima attività: 10/06/2009 17.30.47baltica
il 6 dicembre 2007 alle 12.22
40 messaggi dal 08 febbraio 2002
Buongiorno,
sto facendo il porting di un'applicazione ASP.NET dalla versione 1.1 alla 2.0
La pagina di login dell'applicazione scrive automaticamente nel campo user l'utente di dominio loggato correntemente con questa istruzione :

string username = System.Windows.Forms.SystemInformation.UserName;

ma con il framework 2.0 l'istruzione mi restituisce il nome computer;
Come posso recuperare di nuovo l'informazione ?

Grazie

RE: Recuperare l'utenza di dominio
efran.cobisi
efran.cobisi non è online. Ultima attività: 09/01/2008 13.22.16efran.cobisi
il 6 dicembre 2007 alle 13.43
Contributi | 47 messaggi dal 18 settembre 2006
Il metodo corretto per risalire al principal correntemente loggato è utilizzare il metodo GetCurrent() della classe WindowsIdentity, nel namespace System.Security.Principal. La proprietà Name dell'oggetto ritornato (di tipo WindowsIdentity) fornisce proprio ciò che stai cercando.

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
RE: Recuperare l'utenza di dominio
baltica
baltica non è online. Ultima attività: 10/06/2009 17.30.47baltica
il 6 dicembre 2007 alle 14.10
40 messaggi dal 08 febbraio 2002
Mmm...

string username = WindowsIdentity.GetCurrent().Name;

mi restituisce "FSITMIC00130\\IUSR_FSITMIC00130"

FSITMIC00130 è il nome macchina del mio pc ... quello che volevo io è il nome dell' utente di dominio (quello che inserisco quando mi loggo alla rete aziendale).

RE: Recuperare l'utenza di dominio
efran.cobisi
efran.cobisi non è online. Ultima attività: 09/01/2008 13.22.16efran.cobisi
il 6 dicembre 2007 alle 15.28
Contributi | 47 messaggi dal 18 settembre 2006
Ok, credo che tu abbia un po' di confusione sulla gestione degli utenti in Windows. L'utente "FSITMIC00130\IUSR_FSITMIC00130" che ti viene ritornato è effettivamente l'utente che esegue il processo dove gira la tua applicazione; se FSITMIC00130 è il nome della tua macchina, significa che l'utente è locale. Non per questo sei limitato ad eseguire processi con utenti locali, anzi.

Mi pare di comunque di capire che desideri sapere il nome dell'utente che eventualmente ha effettuato interattivamente il logon sulla macchina ospitante, aprendo così una sessione interattiva... Il codice è un po' più complesso ma digeribile. :)

Prima di tutto devi aggiungere il riferimento a System.Management.dll nel tuo progetto. Poi puoi utilizzare una funzione tipo questa:

        string GetLoggedOnUserName()
        {
            ManagementScope scope = new ManagementScope(@"\\.\Root\Cimv2");
            scope.Connect();

            // Accede alla classe WMI del computer locale

            ManagementClass computerSystem =
                new ManagementClass("Win32_ComputerSystem");

            foreach (ManagementObject mgmtObject in computerSystem.GetInstances())
          {
                // La proprietà Username contiene il nome dell'utente che ha fatto
                // log on interattivo nel sistema.

                PropertyData propCurrent = mgmtObject.Properties["Username"];

                if (propCurrent.Value != null)
                {
                    return (string)propCurrent.Value;
                }
          }

            return null;
        }



Ciao, HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
RE: Recuperare l'utenza di dominio
baltica
baltica non è online. Ultima attività: 10/06/2009 17.30.47baltica
il 6 dicembre 2007 alle 15.30
40 messaggi dal 08 febbraio 2002
ok tutto a posto ... mi ero solo dimenticato di impedire l'accesso anonimo su IIS

Grazie !!

RE: Recuperare l'utenza di dominio
efran.cobisi
efran.cobisi non è online. Ultima attività: 09/01/2008 13.22.16efran.cobisi
il 7 dicembre 2007 alle 11.23
Contributi | 47 messaggi dal 18 settembre 2006

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9