Avatar billede luctatic Nybegynder
10. december 2009 - 17:28 Der er 6 kommentarer

UAC og Code Access Security

I får lige spørgsmålet på engelsk, da jeg har smidt det på flere fora.

I create a console application, with one line:

StreamWriter writer = File.CreateText(@"c:\file.txt");

Then, using caspol, I create a permissionset that states that the members of the permissionset cannot write to the c:\file.txt file, and apply it to a code group. This codegroup is then applied to the console application I just created.

If I run this in Win7, with UAC at default - the app crashes, stating that the app didn't have the security permission to write to the file.

However, if I run the app with UAC turned off - the app writes perfectly to the file. No crash, no warning, no nothing.

It's as if turning UAC off completes disables CAS. That can't possibly be right in any way, shape or form.


Kan det her virkeligt være rigtigt? Hvis det er, så betyder det jo at man kan override CAS TOTALT bare ved at slå UAC fra.
Avatar billede arne_v Ekspert
10. december 2009 - 17:33 #1
Ideen i CAS er at man frivilligt enabler det foer end man koerer noget kode som man ikke har fuld tillid til.
Avatar billede luctatic Nybegynder
10. december 2009 - 17:49 #2
Ja, men hvorfor bliver CAS disabled bare fordi man ikke vil se UAC beskeder om at "er du sikker på at du vil trykke ok?".

De to ting burde da ikke hænge sammen. Jeg har jo netop været inde og frivilligt sige, at min app.exe fil ikke skal have lov til at skrive til c:\, men den gør det alligevel.

Man kunne jo forestille sig et third party assembly, som man ville være sikker på ikke skrev ned i ens c:\windows directory, men fordi UAC er slået fra, har fuldt ud lov til at gøre det alligevel.
Avatar billede arne_v Ekspert
10. december 2009 - 18:34 #3
Nu er det ikke helt klart for mig hvad "This codegroup is then applied to the console application I just created." rent faktisk betyder.

Du kan sagtens bruge CAS uaden UAC - jeg har selv brugt CAS paa Windows XP !

Men hvis du integrerer CAS med UAC, saa den prompter for privs, saa er det vel logisk hvad den goer.
Avatar billede luctatic Nybegynder
10. december 2009 - 19:52 #4
Det jeg mener er, at inde i mscorcfg.msc, så sætter jeg membership til at være URL og så peger jeg på c:\app.exe som er min application. Så rammer den kun det ene assembly.

Og igen, problemet er, at hvis man disabler UAC på en win7, så disabler du samtidigt CAS policies der er sat inde i mscorcfg.msc via codegroups og permissionsets.

Problemet er der ikke i WinXP fordi der findes UAC ikke.
Avatar billede jeppekristensen Nybegynder
13. januar 2010 - 20:02 #5
Avatar billede luctatic Nybegynder
13. januar 2010 - 22:30 #6
Desværre ikke. Det handler om hvordan man får en application til at køre med elevated priviledges. Det ændrer ikke på, at hvis man slår UAC fra på en maskine, så virker CAS heller ikke i de assemblies man afvikler.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester