Czy może zaistnieć taka sytuacja, że program uruchomiony z bieżącymi uprawnieniami użytkownika (gdy aplikacja używa opcji asInvoker
) nie będzie mógł np. utworzyć katalogu lub pliku w systemowym katalogu %LOCALAPPDATA%
, czyli nie będzie miał praw zapisu w tym folderze?
Biorę pod uwagę wszystkie możliwości, zarówno typy użytkowników (administrator, użytkownik, gość), jak i możliwość przypadkowego/celowego zablokowania praw do zapisu przez użytkownika; O ile blokowanie tego katalogu było by głupotą to niestety głupota użytkowników jak wiadomo nie zna granic :]
Implementuję sobie właśnie mechanizm tworzenia dedykowanego katalogu z konfiguracjami programu i zastanawiam się, czy jest sens wprowadzać zabezpieczenie przed brakiem możliwości utworzenia folderu przez funkcję CreateDirectoryUTF8; Argumentem tej funkcji jest ścieżka pobrana przez API systemu z dodaną podścieżką - całość będzie posiadać poniższą postać:
%LOCALAPPDATA%\MyCorpoName\MyAppName\
więc na tym etapie zawsze będzie prawidłowa (jeśli funkcja API systemu nie zdoła pobrać ścieżki tego katalogu to do tego kroku program nie dojdzie); Priorytetem dla mnie jest zabezpieczenie wszystkiego, co może spowodować całkowite wykrzaczenie programu i swoisty UB;
Samo dodatkowe zabezpieczenie istniejące w kodzie w niczym nie przeszkadza, chodzi po prostu o zaspokojenie mojej ciekawości; Aplikacja będzie działać na systemach Windows od wersji XP wzwyż.