Hej Lägger du exefilen på en delad server och försöker köra den därifrån? <b>Eller finns det ngn annan katalog som det är smartare att skapa filer i?</b> Tack för era svar Kolla denna artikel: Vad staffan vill göra är att ändra File Permission, genom att modifera filens ACL, vid runtime. För ordningen & förhoppningsvis för att hjälpa ngn annan, här är en länk till en bra lösning på problemetSätta skrivrättigheter på fil med .NET
I en windows forms-applikation sparars lite inställningar i en config-fil.
Detta görs i en underkatalog till
Environment.GetFolderPath( Environment.SpecialFolder.CommonApplicationData )
Underkatalogen skapar programmet själv.
Detta går OK första gången och alla följande gånger programmet körs OM DET ÄR SAMMA ANVÄNDARE som kör.
MEN
om man loggar in som ngn annan så har man inte modify-rättigheter på config-filen. En Exception slängs.
Hur kommer jag kring detta?
Kan man, när man skapar filen första gången, sätta att everyone har modify-rättigheter?
Hur då i .NET?
Eller finns det ngn annan katalog som det är smartare att skapa filer i?
Tacksam för vinkar.
/StaffanSv: Sätta skrivrättigheter på fil med .NET
Sv: Sätta skrivrättigheter på fil med .NET
Ja, i aktuell användares profil, i mitt fall: C:\Documents and Settings\johand\Application Data
/JohanSv: Sätta skrivrättigheter på fil med .NET
Jag var kanske inte helt klar i min fråga.
Programmet körs från en lokal hårddisk (ev. CD-ROM).
Att skriva till C:\Documents and Settings\johand\Application Data\... (typ )
är inget val eftersom ALLA användare (lokala eller domänanv.) som råkar vara inloggade på datorn skall kunna läsa/skriva till filen.
Det bästa jag kommit på så långt är alltså
C:\Documents and Settings\All Users\Application Data\...
Men så var det det där med modify-rättigheten som spökarSv: Sätta skrivrättigheter på fil med .NET
http://www.pellesoft.se/area/articles/article.aspx?artid=839Sv: Sätta skrivrättigheter på fil med .NET
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&frame=right&th=1ba60f5f721f2e6&seekm=42a801c2389c%24e2d293a0%2435ef2ecf%40TKMSFTNGXA11#link1Sv: Sätta skrivrättigheter på fil med .NET
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=e6098575-dda0-48b8-9abf-e0705af065d9
Den kod jag håller på å testar just är
private void EveryoneAccess( string filename )
{
SecurityDescriptor secDesc = SecurityDescriptor.GetFileSecurity (filename, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);
Dacl dacl = secDesc.Dacl;
dacl.AddAce (new AceAccessAllowed (new Sid ("Everyone"), AccessType.GENERIC_ALL ));
// set new AC
secDesc.SetDacl(dacl);
secDesc.SetFileSecurity(filename, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);
}
Tack andreas för ditt tips
Det var "ACL" som var den förlösande akronymen.
/Ztiff