FeedBack für FindFirstURLCacheEntry
https://beta.microsoft.com/WNDP/feed...dbackID=191952
A bit about WinInet's Index.dat
http://blogs.msdn.com/wndp/archive/2...Index_dat.aspx
Wenn ich dem FeedBack (erster Link) glaube, dann ist die einzige Möglichkeit, den korrekten Cache der LowIntegrity zu bekommen,
einen Prozess mit dem Aufruf zu beauftragen. Dieser Prozess muss sofort mit LowIL gestartet werden.
Sag mir bescheid, wenn du was dazu hast.
P.S.
Ich habe das Integrity Level für das Token eingeführt.
Delphi-Quellcode:
var tok : TJwSecurityToken;
begin
tok := TJwSecurityToken.CreateTokenEffective(TOKEN_ALL_ACCESS);
try
tok.TokenIntegrityLevelType := iltLow;
finally
tok.Free;
end;
end;
----------
Zitat:
if (SetTokenInformation(processToken, Windows.TTokenInformationClass(TokenIntegrityLevel ),
@MandatoryLabel, SizeOf(PTokenMandatoryLabel)+GetLengthSid(pIntegri tySid))) then begin
ShowMessage('Privileges lowered');
end;
Meiner Meinung ist es reiner Zufall, dass das überhaupt funktioniert. Die übergebene Größe (SizeOf(PTokenMandatoryLabel)+GetLengthSid(pIntegr itySid)) ist dieselbe oder größer als die von MandatoryLabel.
Ich habe daher sizeof(MandatoryLabel) verwendet und es funkt wunderbar.
sizeof(MandatoryLabel) = sizeof(_TOKEN_MANDATORY_LABEL) = sizeof(PSID) +sizeof(DWORD) = 4+4 = 8
SizeOf(PTokenMandatoryLabel)+GetLengthSid(pIntegri tySid) = 4 + 12 = 16 (bei mir)
Die Struktur verwendet jedoch einen Zeiger auf die SID. Im Gegensatz zu den ACE Strukturen. Diese enthalten die SID komplett im Record. Daher muss man die SidLänge angeben.
Hast du es von dort?:
http://weblogs.asp.net/kennykerr/arc...t-Control.aspx
Müsste man mal fragen, warum der das so macht. Würde mich gerne belehren lassen.