.net - Hvor skal man placere almindelige brugerdata uden administrativ ret?

Indlæg af Hanne Mølgaard Plasc

Problem



Min VB.NET-applikation skal gemme en tekstfil i en lokal maskine. Hver gang applikationen starter, skal den skrive oplysninger til den pågældende tekstfil uanset hvilken som helst bruger i maskinen.


1) Registreringsdatabasen er ude af valgmulighed. Bruger har ingen skriveadgang til HKEY\_LOCAL\_MACHINE \ Software. HKEY\_CURRENT\_USER \ Software er ikke foretrukket, da brugere skal forsyne nøgle til licensoplåsning, når de åbner applikationen for første gang. Jeg vil kun have licensoplåsningsnøglen, der skal leveres en gang efter, at den er installeret af enhver bruger. Licenslåsningsnøglen vil blive skrevet i tekstfilen.


2) Jeg har forsøgt Environment.SpecialFolder.CommonApplicationData og oprettet en mappe til at gemme tekstfilen. Det fungerer godt, når administratoren installerer det, og administratoren kan åbne applikationen. Når brugeren logger ind på den samme maskine, formår programmet at vise skærm, men det stopper med at arbejde. Der vises ingen fejlmeddelelse, og den forsvinder i fanen Detaljer i opgaveregisteret. Jeg kan stadig se tekstfilen i Environment.SpecialFolder.CommonApplicationData.


3) Jeg har tjekket andet spørgsmål relateret til dette problem før. En af kommentarerne foreslog isoleret opbevaring. Men jeg er ikke sikker på, om jeg får det samme resultat som (2) ovenfor, når jeg bruger Isoleret Storage.


spørgsmål:


1) Hvor skal licensfilen gemmes i en lokal maskine, som er fælles for alle brugere, og alle brugere skal have skrive, læs adgang til licensfilen?

Bedste reference


Andre overvejelser til side, CommonApplicationData er stadig det rigtige sted for denne fil.


Når din installatør oprindeligt opretter filen, skal du have indstillet tilladelser, der tillader INTERACTIVE at skrive til den. Ideelt set bør du kun give tilladelse til FILE\_GENERIC\_WRITE, så ikke-admin-brugere ikke kan slette filen eller ændre tilladelserne igen.