Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_core.h"
00035 #include "../System/databuffer.h"
00036
00040 class CL_API_CORE CL_SecurityIdentifier
00041 {
00044
00045 public:
00047 enum Type
00048 {
00049 type_user,
00050 type_group,
00051 type_domain,
00052 type_alias,
00053 type_well_known_group,
00054 type_deleted_account,
00055 type_invalid,
00056 type_unknown,
00057 type_computer
00058 };
00059
00063 CL_SecurityIdentifier(const CL_String &name);
00064
00069 CL_SecurityIdentifier(const CL_String &name, Type type);
00070
00071 #ifdef WIN32
00072
00076 CL_SecurityIdentifier(const PSID sid);
00077 #else
00078
00083 CL_SecurityIdentifier(unsigned int sid, Type type);
00084 #endif
00085
00089 CL_SecurityIdentifier(const CL_SecurityIdentifier ©);
00090
00091 ~CL_SecurityIdentifier();
00092
00096 static CL_SecurityIdentifier get_thread_user();
00097
00101 static CL_SecurityIdentifier get_thread_group();
00102
00106
00107 public:
00109 CL_String get_name() const;
00110
00112 CL_String get_domain_name() const;
00113
00115 Type get_type() const;
00116
00120
00121 public:
00122 CL_SecurityIdentifier &operator =(const CL_SecurityIdentifier ©);
00123
00127
00128 private:
00129 #ifdef WIN32
00130 CL_DataBuffer sid;
00131 #else
00132 unsigned int sid;
00133 #endif
00134
00135 Type type;
00137 };
00138