MrJavalava Skrevet 23. januar 2012 Del Skrevet 23. januar 2012 Jeg har laget en applikasjon som startes som administrator. Det jeg prøver å få til, er å åpne loggkataloger på maskiner som er på samme nett uten å måtte skrive inn credentials i "Network password" i dialogboksen til Windows Explorer. Jeg har sett at det er mulig å åpne en katalog på en annen maskin i ett annet program som heter 'SCCM Client Center'. Spørsmålet er bare hvordan det er blitt løst i SCCM Client Center. Hvis jeg starter en ny prosess i min applikasjon med denne koden: var logdirectory = @"\\mycomputer\c$\windows\logs\"; Process Explorer = new Process(); Explorer.StartInfo.Verb = "runas"; Explorer.StartInfo.FileName = "Explorer.exe"; Explorer.StartInfo.Arguments = logdirectory; Explorer.StartInfo.WindowStyle = ProcessWindowStyle.Normal; Explorer.StartInfo.UseShellExecute = false; Explorer.Start(); Så vil jeg få opp et vindu som spør etter mine credentials (network password). Jeg har også lagt inn et manifest for programmet: <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <!-- UAC Manifest Options If you want to change the Windows User Account Control level replace the requestedExecutionLevel node with one of the following. <requestedExecutionLevel level="asInvoker" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> Specifying requestedExecutionLevel node will disable file and registry virtualization. If you want to utilize File and Registry Virtualization for backward compatibility then delete the requestedExecutionLevel node. --> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> <applicationRequestMinimum> <defaultAssemblyRequest permissionSetReference="Custom" /> <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" /> </applicationRequestMinimum> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> </application> </compatibility> </asmv1:assembly> Det som var planen med manifestet, var å se om den fikk vekk spørsmålet om credentials, uten særlig hell. Har også prøvd <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> som ikke gjør noe annet enn å kreve at brukeren kjører programmet som administrator. Noen som har tanker om emnet? Lenke til kommentar
wolf5 Skrevet 23. januar 2012 Del Skrevet 23. januar 2012 Jeg ville nå tro at du aldri ville kunne lese filer fra en annen datamaskin dersom du ikke har tilgang (bruker&passord) på denne. I så fall hadde det vært en gigantisk sikkerhetsbrist. Manifestet har vel kun med applikasjonen din å gjøre lokalt på maskinen den startes fra. Har du derimot bruker og passord skal du kunne aksessere stier i nettet ved å logge på med bruker og passord via kode. Mulig det finnes noe nyere .Net som gjør det enklere men av eldre .Net kan dette gjøres med litt DllImport: http://www.techtalkz.com/c-c-sharp/115668-accessing-unc-file-share-credentials.html Lenke til kommentar
HDSoftware Skrevet 24. januar 2012 Del Skrevet 24. januar 2012 Vel, svaret er vel relativt enkelt: Gitt at du har et share på en maskin. Dette sharet har du attestert til Per og Kari. Så kommer programmet ditt og sier: Jeg vil lese det sharet og jeg heter Administrator...... Husk at Administrator kunn er en vanlig bruker. Ikke noe mer. At Administrator rtilfeldigvis er medlem av Administrators er en helt annen sak, men endrer ikke det faktum at sharet kunn fortsatt er attestert til Per og Kari. Med andre ord: 1. Administrator kan kunn logge på shares som også er attestert til Administrator eller de grupper som administrator er medlem av 2. Det at man er logget på som administrator gir kunn tillgang til systemets indre "tjenester" fordi disse er attestert til administratorer Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå