// Known capabilities defined in Windows 8.
enum class WellKnownCapability {
kInternetClient,
kInternetClientServer,
kPrivateNetworkClientServer,
kPicturesLibrary,
kVideosLibrary,
kMusicLibrary,
kDocumentsLibrary,
kEnterpriseAuthentication,
kSharedUserCertificates,
kRemovableStorage,
kAppointments,
kContacts
};
// A subset of well known SIDs to create.
enum class WellKnownSid {
kNull,
kWorld,
kCreatorOwner,
kNetwork,
kBatch,
kInteractive,
kService,
kAnonymous,
kSelf,
kAuthenticatedUser,
kRestricted,
kLocalSystem,
kLocalService,
kNetworkService,
kBuiltinAdministrators,
kBuiltinUsers,
kBuiltinGuests,
kUntrustedLabel,
kLowLabel,
kMediumLabel,
kHighLabel,
kSystemLabel,
kWriteRestricted,
kCreatorOwnerRights,
kAllApplicationPackages,
kAllRestrictedApplicationPackages
};
// This class is used to hold and generate SIDs. class BASE_EXPORT Sid { public: // Create a Sid from an AppContainer capability name. The name can be // completely arbitrary. static Sid FromNamedCapability(const std::wstring& capability_name);
// Create a Sid from a known capability enumeration value. The Sids // match with the list defined in Windows 8. static Sid FromKnownCapability(WellKnownCapability capability);
// Create a SID from a well-known type. static Sid FromKnownSid(WellKnownSid type);
// Create a Sid from a SDDL format string, such as S-1-1-0. static absl::optional<Sid> FromSddlString(const std::wstring& sddl_sid);
// Create a Sid from a PSID pointer. static absl::optional<Sid> FromPSID(const PSID sid);
// Generate a random SID value. static Sid GenerateRandomSid();
// Create a SID for an integrity level RID. static Sid FromIntegrityLevel(DWORD integrity_level);
// Create a vector of SIDs from a vector of SDDL format strings. static absl::optional<std::vector<Sid>> FromSddlStringVector( const std::vector<std::wstring>& sddl_sids);
// Create a vector of SIDs from a vector of capability names. static std::vector<Sid> FromNamedCapabilityVector( const std::vector<std::wstring>& capability_names);
// Create a vector of SIDs from a vector of well-known capability. static std::vector<Sid> FromKnownCapabilityVector( const std::vector<WellKnownCapability>& capabilities);
// Create a vector of SIDs from a vector of well-known sids. static std::vector<Sid> FromKnownSidVector( const std::vector<WellKnownSid>& known_sids);
// Create a known SID.
explicit Sid(WellKnownSid known_sid); // Create a known capability SID.
explicit Sid(WellKnownCapability known_capability);
Sid(const Sid&) = delete;
Sid& operator=(const Sid&) = delete;
Sid(Sid&& sid);
Sid& operator=(Sid&&);
~Sid();
// Returns sid as a PSID. This should only be used temporarily while the Sid // is still within scope.
PSID GetPSID() const;
// Converts the SID to a SDDL format string.
absl::optional<std::wstring> ToSddlString() const;
// Make a clone of the current Sid object.
Sid Clone() const;
// Is this Sid equal to another raw PSID? bool Equal(PSID sid) const;
// Is this Sid equal to another Sid? booloperator==(const Sid& sid) const;
// Is this Sid not equal to another Sid? booloperator!=(const Sid& sid) const;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.