Clase CSecurityDesc
Esta clase es un contenedor de la estructura SECURITY_DESCRIPTOR
.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class CSecurityDesc
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CSecurityDesc::CSecurityDesc | Constructor . |
CSecurityDesc::~CSecurityDesc | El destructor . |
Métodos públicos
Nombre | Descripción |
---|---|
CSecurityDesc::FromString | Convierte un descriptor de seguridad de formato de cadena en un descriptor de seguridad funcional válido. |
CSecurityDesc::GetControl | Recupera información de control del descriptor de seguridad. |
CSecurityDesc::GetDacl | Recupera información de la lista de control de acceso discrecional (DACL) del descriptor de seguridad. |
CSecurityDesc::GetGroup | Recupera la información del grupo principal del descriptor de seguridad. |
CSecurityDesc::GetOwner | Recupera la información del propietario del descriptor de seguridad. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | Devuelve un puntero a la estructura SECURITY_DESCRIPTOR . |
CSecurityDesc::GetSacl | Recupera información de la lista de control de acceso del sistema (SACL) del descriptor de seguridad. |
CSecurityDesc::IsDaclAutoInherited | Determina si la DACL está configurada para admitir la propagación automática. |
CSecurityDesc::IsDaclDefaulted | Determina si el descriptor de seguridad está configurado con una DACL predeterminada. |
CSecurityDesc::IsDaclPresent | Determina si el descriptor de seguridad contiene una DACL. |
CSecurityDesc::IsDaclProtected | Determina si la DACL está configurada para evitar modificaciones. |
CSecurityDesc::IsGroupDefaulted | Determina si el identificador de seguridad (SID) del descriptor de seguridad se estableció de forma predeterminada. |
CSecurityDesc::IsOwnerDefaulted | Determina si el SID del propietario del descriptor de seguridad se estableció de forma predeterminada. |
CSecurityDesc::IsSaclAutoInherited | Determina si la SACL está configurada para admitir la propagación automática. |
CSecurityDesc::IsSaclDefaulted | Determina si el descriptor de seguridad está configurado con una SACL predeterminada. |
CSecurityDesc::IsSaclPresent | Determina si el descriptor de seguridad contiene una SACL. |
CSecurityDesc::IsSaclProtected | Determina si la SACL está configurada para evitar modificaciones. |
CSecurityDesc::IsSelfRelative | Determina si el descriptor de seguridad está en formato autorrelativo. |
CSecurityDesc::MakeAbsolute | Llame a este método para convertir el descriptor de seguridad en formato absoluto. |
CSecurityDesc::MakeSelfRelative | Llame a este método para convertir el descriptor de seguridad en formato autorrelativo. |
CSecurityDesc::SetControl | Establece los bits de control de un descriptor de seguridad. |
CSecurityDesc::SetDacl | Establece información en una DACL. Si una DACL ya está presente en el descriptor de seguridad, se reemplaza. |
CSecurityDesc::SetGroup | Establece la información del grupo principal de un descriptor de seguridad de formato absoluto, y reemplaza cualquier información de grupo principal ya presente. |
CSecurityDesc::SetOwner | Establece la información del propietario de un descriptor de seguridad de formato absoluto, reemplazando cualquier información de propietario ya presente. |
CSecurityDesc::SetSacl | Establece información en una SACL. Si una SACL ya está presente en el descriptor de seguridad, se reemplaza. |
CSecurityDesc::ToString | Convierte un descriptor de seguridad en un formato de cadena. |
Operadores públicos
Nombre | Descripción |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | Devuelve un puntero a la estructura SECURITY_DESCRIPTOR . |
CSecurityDesc::operator = | Operador de asignación. |
Comentarios
La estructura SECURITY_DESCRIPTOR
contiene la información de seguridad asociada a un objeto. Las aplicaciones usan esta estructura para establecer y consultar el estado de seguridad de un objeto. Consulte también AtlGetSecurityDescriptor.
Las aplicaciones no deben modificar la estructura SECURITY_DESCRIPTOR
directamente y, en su lugar, deben usar los métodos de clase proporcionados.
Para una introducción al modelo de control de acceso en Windows, consulte Control de acceso en Windows SDK.
Requisitos
Encabezado: atlsecurity.h
CSecurityDesc::CSecurityDesc
Constructor .
CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);
Parámetros
rhs
Objeto CSecurityDesc
o estructura SECURITY_DESCRIPTOR
que se va a asignar al nuevo objeto CSecurityDesc
.
Comentarios
Opcionalmente, el objeto CSecurityDesc
se puede crear mediante una estructura SECURITY_DESCRIPTOR
o un objeto CSecurityDesc
definido previamente.
CSecurityDesc::~CSecurityDesc
El destructor .
virtual ~CSecurityDesc() throw();
Comentarios
El destructor libera todos los recursos asignados.
CSecurityDesc::FromString
Convierte un descriptor de seguridad de formato de cadena en un descriptor de seguridad funcional válido.
bool FromString(LPCTSTR pstr) throw(...);
Parámetros
pstr
Puntero a una cadena terminada en null que contiene el descriptor de seguridad de formato de cadena que se va a convertir.
Valor devuelto
Devuelve true en caso de éxito. Produce una excepción en caso de error.
Comentarios
La cadena se puede crear mediante CSecurityDesc::ToString. La conversión del descriptor de seguridad en una cadena facilita el almacenamiento y la transmisión.
Este método llama a ConvertStringSecurityDescriptorToSecurityDescriptor.
CSecurityDesc::GetControl
Recupera información de control del descriptor de seguridad.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
Parámetros
psdc
Puntero a una estructura SECURITY_DESCRIPTOR_CONTROL
que recibe la información de control del descriptor de seguridad.
Valor devuelto
Devuelve true si el método se realiza correctamente, false si se produce un error.
Comentarios
Este método llama a GetSecurityDescriptorControl.
CSecurityDesc::GetDacl
Recupera información de la lista de control de acceso discrecional (DACL) del descriptor de seguridad.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parámetros
pDacl
Puntero a una estructura CDacl
en la que se va a almacenar una copia de la DACL del descriptor de seguridad. Si existe una ACL discrecional, el método establece pDacl en la dirección de la ACL discrecional del descriptor de seguridad. Si no existe una ACL discrecional, no se almacena ningún valor.
pbPresent
Puntero a un valor que indica la presencia de una ACL discrecional en el descriptor de seguridad especificado. Si el descriptor de seguridad contiene una ACL discrecional, este parámetro se establece en true. Si el descriptor de seguridad no contiene una ACL discrecional, este parámetro se establece en false.
pbDefaulted
Puntero a una marca establecida en el valor de la marca de SE_DACL_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
si existe una ACL discrecional para el descriptor de seguridad. Si esta marca es true, la ACL discrecional se recuperó mediante un mecanismo predeterminado; si es false, un usuario especificó la ACL discrecional de forma explícita.
Valor devuelto
Devuelve true si el método se realiza correctamente, false si se produce un error.
CSecurityDesc::GetGroup
Recupera la información del grupo principal del descriptor de seguridad.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parámetros
pSid
Puntero a un CSid (identificador de seguridad) que recibe una copia del grupo almacenado en CDacl.
pbDefaulted
Puntero a una marca establecida en el valor de la marca SE_GROUP_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
cuando el método devuelve.
Valor devuelto
Devuelve true si el método se realiza correctamente, false si se produce un error.
CSecurityDesc::GetOwner
Recupera la información del propietario del descriptor de seguridad.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parámetros
pSid
Puntero a un CSid (identificador de seguridad) que recibe una copia del grupo almacenado en CDacl.
pbDefaulted
Puntero a una marca establecida en el valor de la marca SE_OWNER_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
cuando el método devuelve.
Valor devuelto
Devuelve true si el método se realiza correctamente, false si se produce un error.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
Devuelve un puntero a la estructura SECURITY_DESCRIPTOR
.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Valor devuelto
Devuelve un puntero a la estructura SECURITY_DESCRIPTOR.
CSecurityDesc::GetSacl
Recupera información de la lista de control de acceso del sistema (SACL) del descriptor de seguridad.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parámetros
pSacl
Puntero a una estructura CSacl
en la que se va a almacenar una copia de la SACL del descriptor de seguridad. Si existe una ACL del sistema, el método establece pSacl en la dirección de la ACL del sistema del descriptor de seguridad. Si no existe una ACL del sistema, no se almacena ningún valor.
pbPresent
Puntero a una marca que establece el método para indicar la presencia de una ACL del sistema en el descriptor de seguridad especificado. Si el descriptor de seguridad contiene una ACL del sistema, este parámetro se establece en true. Si el descriptor de seguridad no contiene una ACL del sistema, este parámetro se establece en false.
pbDefaulted
Puntero a una marca establecida en el valor de la marca de SE_SACL_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
si existe una ACL del sistema para el descriptor de seguridad.
Valor devuelto
Devuelve true si el método se realiza correctamente, false si se produce un error.
CSecurityDesc::IsDaclAutoInherited
Determina si la lista de control de acceso discrecional (DACL) está configurada para admitir la propagación automática.
bool IsDaclAutoInherited() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una DACL que está configurada para admitir la propagación automática de entradas de control de acceso (ACE) que se pueden heredar a objetos secundarios existentes. De lo contrario, devuelve false.
Comentarios
El sistema establece esta parte cuando realiza el algoritmo de herencia automática para el objeto y sus objetos secundarios existentes.
CSecurityDesc::IsDaclDefaulted
Determina si el descriptor de seguridad está configurado con una lista de control de acceso discrecional (DACL) predeterminada.
bool IsDaclDefaulted() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una DACL predeterminada; en caso contrario, false.
Comentarios
Esta marca puede afectar a cómo el sistema trata la DACL, con respecto a la herencia de entrada de control de acceso (ACE). Por ejemplo, si el creador de un objeto no especifica una DACL, el objeto recibe la DACL predeterminada del token de acceso del creador. El sistema omite esta marca si no se establece la marca de SE_DACL_PRESENT.
Esta marca se usa para determinar cómo se va a calcular la DACL final del objeto y no se almacena físicamente en el control descriptor de seguridad del objeto protegible.
Para establecer esta marca, use el método CSecurityDesc::SetDacl.
CSecurityDesc::IsDaclPresent
Determina si el descriptor de seguridad contiene una lista de control de acceso discrecional (DACL).
bool IsDaclPresent() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una DACL; en caso contrario, false.
Comentarios
Si no se establece esta marca o si se establece esta marca y la DACL es null, el descriptor de seguridad permite el acceso total a todos los usuarios.
Esta marca se usa para contener la información de seguridad especificada por un llamador hasta que el descriptor de seguridad esté asociado a un objeto protegible. Una vez que el descriptor de seguridad está asociado a un objeto protegible, la marca SE_DACL_PRESENT siempre se establece en el control del descriptor de seguridad.
Para establecer esta marca, use el método CSecurityDesc::SetDacl.
CSecurityDesc::IsDaclProtected
Determina si la lista de control de acceso discrecional (DACL) está configurada para evitar modificaciones.
bool IsDaclProtected() const throw();
Valor devuelto
Devuelve true si la DACL está configurada para evitar que el descriptor de seguridad se modifique mediante entradas de control de acceso (ACE) que se pueden heredar. De lo contrario, devuelve false.
Comentarios
Para establecer esta marca, use el método CSecurityDesc::SetDacl.
Este método admite la propagación automática de ACE que se pueden heredar.
CSecurityDesc::IsGroupDefaulted
Determina si el identificador de seguridad (SID) del descriptor de seguridad se estableció de forma predeterminada.
bool IsGroupDefaulted() const throw();
Valor devuelto
Devuelve true si un mecanismo predeterminado, y no el proveedor original del descriptor de seguridad, proporcionó el SID de grupo del descriptor de seguridad. De lo contrario, devuelve false.
Comentarios
Para establecer esta marca, use el método CSecurityDesc::SetGroup.
CSecurityDesc::IsOwnerDefaulted
Determina si el identificador de seguridad (SID) del propietario del descriptor de seguridad se estableció de forma predeterminada.
bool IsOwnerDefaulted() const throw();
Valor devuelto
Devuelve true si un mecanismo predeterminado, y no el proveedor original del descriptor de seguridad, proporcionó el SID de propietario del descriptor de seguridad. De lo contrario, devuelve false.
Comentarios
Para establecer esta marca, use el método CSecurityDesc::SetOwner.
CSecurityDesc::IsSaclAutoInherited
Determina si la lista de control de acceso del sistema (SACL) está configurada para admitir la propagación automática.
bool IsSaclAutoInherited() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una SACL que está configurada para admitir la propagación automática de entradas de control de acceso (ACE) que se pueden heredar a objetos secundarios existentes. De lo contrario, devuelve false.
Comentarios
El sistema establece esta parte cuando realiza el algoritmo de herencia automática para el objeto y sus objetos secundarios existentes.
CSecurityDesc::IsSaclDefaulted
Determina si el descriptor de seguridad está configurado con una lista de control de acceso del sistema (SACL) predeterminada.
bool IsSaclDefaulted() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una SACL predeterminada; de lo contrario, false.
Comentarios
Esta marca puede afectar al modo en que el sistema trata la SACL, con respecto a la herencia de entrada de control de acceso (ACE). El sistema omite esta marca si no se establece la marca SE_SACL_PRESENT.
Para establecer esta marca, use el método CSecurityDesc::SetSacl.
CSecurityDesc::IsSaclPresent
Determina si el descriptor de seguridad contiene una lista de control de del sistema (SACL).
bool IsSaclPresent() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad contiene una SACL; de lo contrario, false.
Comentarios
Para establecer esta marca, use el método CSecurityDesc::SetSacl.
CSecurityDesc::IsSaclProtected
Determina si la lista de control de acceso del sistema (SACL) está configurada para evitar modificaciones.
bool IsSaclProtected() const throw();
Valor devuelto
Devuelve true si SACL está configurado para evitar que el descriptor de seguridad se modifique mediante entradas de control de acceso (ACE) que se pueden heredar. De lo contrario, devuelve false.
Comentarios
Para establecer esta marca, use el método CSecurityDesc::SetSacl.
Este método admite la propagación automática de ACE que se pueden heredar.
CSecurityDesc::IsSelfRelative
Determina si el descriptor de seguridad está en formato autorrelativo.
bool IsSelfRelative() const throw();
Valor devuelto
Devuelve true si el descriptor de seguridad está en formato autorrelativo con toda la información de seguridad en un bloque contiguo de memoria. Devuelve false si el descriptor de seguridad está en formato absoluto. Para obtener más información, consulte Descriptores de seguridad absolutos y Self-Relative.
CSecurityDesc::MakeAbsolute
Llame a este método para convertir el descriptor de seguridad en formato absoluto.
bool MakeAbsolute() throw(...);
Valor devuelto
Devuelve true si el método se realiza correctamente; de lo contrario, false.
Comentarios
Un descriptor de seguridad en formato absoluto contiene punteros a la información que contiene, en lugar de la propia información. Un descriptor de seguridad en formato autorrelativo contiene la información en un bloque contiguo de memoria. En un descriptor de seguridad autorrelativo, una estructura SECURITY_DESCRIPTOR
siempre inicia la información, pero los demás componentes del descriptor de seguridad pueden seguir la estructura en cualquier orden. En lugar de usar direcciones de memoria, los componentes del descriptor de seguridad autorrelativo se identifican mediante desplazamientos desde el principio del descriptor de seguridad. Este formato es útil cuando un descriptor de seguridad debe almacenarse en un disco o transmitirse mediante un protocolo de comunicaciones. Para obtener más información, consulte Descriptores de seguridad absolutos y Self-Relative.
CSecurityDesc::MakeSelfRelative
Llame a este método para convertir el descriptor de seguridad en formato autorrelativo.
bool MakeSelfRelative() throw(...);
Valor devuelto
Devuelve true si el método se realiza correctamente; de lo contrario, false.
Comentarios
Un descriptor de seguridad en formato absoluto contiene punteros a la información que contiene, en lugar de contener la propia información. Un descriptor de seguridad en formato autorrelativo contiene la información en un bloque contiguo de memoria. En un descriptor de seguridad autorrelativo, una estructura SECURITY_DESCRIPTOR
siempre inicia la información, pero los demás componentes del descriptor de seguridad pueden seguir la estructura en cualquier orden. En lugar de usar direcciones de memoria, los componentes del descriptor de seguridad se identifican mediante desplazamientos desde el principio del descriptor de seguridad. Este formato es útil cuando un descriptor de seguridad debe almacenarse en un disco o transmitirse mediante un protocolo de comunicaciones. Para obtener más información, consulte Descriptores de seguridad absolutos y Self-Relative.
CSecurityDesc::operator =
Operador de asignación.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
Parámetros
rhs
Estructura SECURITY_DESCRIPTOR
u objeto CSecurityDesc
que se va a asignar al objeto CSecurityDesc
.
Valor devuelto
Devuelve el objeto CSecurityDesc
actualizado.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
Convierte un valor en un puntero a la estructura SECURITY_DESCRIPTOR
.
operator const SECURITY_DESCRIPTOR *() const throw();
CSecurityDesc::SetControl
Establece los bits de control de un descriptor de seguridad.
bool SetControl(
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();
Parámetros
ControlBitsOfInterest
Máscara de SECURITY_DESCRIPTOR_CONTROL que indica los bits de control que se van a establecer. Para obtener una lista de las marcas que se pueden establecer, consulte SetSecurityDescriptorControl.
ControlBitsToSet
Máscara SECURITY_DESCRIPTOR_CONTROL que indica los nuevos valores para los bits de control que se especifican en la máscara ControlBitsOfInterest. Este parámetro puede ser una combinación de las marcas enumeradas para el parámetro ControlBitsOfInterest.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
Comentarios
Este método llama a SetSecurityDescriptorControl.
CSecurityDesc::SetDacl
Establece la información en una lista de control de acceso discrecional (DACL). Si una DACL ya está presente en el descriptor de seguridad, se reemplaza.
inline void SetDacl(
bool bPresent = true,
bool bDefaulted = false) throw(...);
inline void SetDacl(
const CDacl& Dacl,
bool bDefaulted = false) throw(...);
Parámetros
Dacl
Referencia a un objeto CDacl
que especifica la DACL para el descriptor de seguridad. Este parámetro no debe ser null. Para establecer una DACL null en el descriptor de seguridad, se debe usar la primera forma del método con bPresent establecido en false.
bPresent
Especifica una marca que indica la presencia de una DACL en el descriptor de seguridad. Si este parámetro es true, el método establece la marca SE_DACL_PRESENT en la estructura SECURITY_DESCRIPTOR_CONTROL
y usa los valores de los parámetros Dacl y bDefaulted. Si es false, el método borra la marca SE_DACL_PRESENT y bDefaulted se omite.
bDefaulted
Especifica una marca que indica el origen de la DACL. Si esta marca es true, la DACL se ha recuperado mediante algún mecanismo predeterminado. Si es false, un usuario ha especificado la DACL de forma explícita. El método almacena este valor en la marca SE_DACL_DEFAULTED de la estructura SECURITY_DESCRIPTOR_CONTROL
. Si no se especifica este parámetro, la marca SE_DACL_DEFAULTED se borra.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
Comentarios
Hay una diferencia importante entre una DACL vacía y una DACL inexistente. Cuando una DACL está vacía, no contiene entradas de control de acceso y no se han concedido derechos de acceso de forma explícita. Como resultado, se deniega implícitamente el acceso al objeto. Cuando un objeto no tiene DACL, por otro lado, no se asigna ninguna protección al objeto y se concede cualquier solicitud de acceso.
CSecurityDesc::SetGroup
Establece la información del grupo principal de un descriptor de seguridad de formato absoluto, y reemplaza cualquier información de grupo principal ya presente.
bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);
Parámetros
Sid
Referencia a un objeto CSid para el nuevo grupo principal del descriptor de seguridad. Este parámetro no debe ser null. Se puede marcar un descriptor de seguridad como carente de DACL o SACL, pero debe tener un grupo y un propietario, incluso si estos son el SID null (que es un SID integrado con un significado especial).
bDefaulted
Indica si la información del grupo principal se ha derivado de un mecanismo predeterminado. Si este valor es true, es información predeterminada y el método almacena este valor como la marca SE_GROUP_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
. Si este parámetro es cero, se borra la marca SE_GROUP_DEFAULTED.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
CSecurityDesc::SetOwner
Establece la información del propietario de un descriptor de seguridad de formato absoluto. Reemplaza cualquier información de propietario que ya esté presente.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
Parámetros
Sid
Objeto CSid para el nuevo propietario principal del descriptor de seguridad. Este parámetro no debe ser null.
bDefaulted
Indica si la información del propietario se deriva de un mecanismo predeterminado. Si este valor es true, es la información predeterminada. El método almacena este valor como la marca SE_OWNER_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL
. Si este parámetro es cero, se borra la marca SE_OWNER_DEFAULTED.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
CSecurityDesc::SetSacl
Establece información en una lista de control de acceso del sistema (SACL). Si una SACL ya está presente en el descriptor de seguridad, se reemplaza.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
Parámetros
Sacl
Puntero a un objeto CSacl
que especifica la SACL para el descriptor de seguridad. Este parámetro no debe ser null y debe ser un objeto CSacl. Al contrario que las DACL, no hay ninguna diferencia entre una SACL null y una SACL vacía, ya que los objetos SACL no especifican derechos de acceso, solo la información de auditoría.
bDefaulted
Especifica una marca que indica el origen de la SACL. Si esta marca es true, el SACL se ha recuperado mediante algún mecanismo predeterminado. Si es false, un usuario ha especificado la SACL de forma explícita. El método almacena este valor en la marca SE_SACL_DEFAULTED de la estructura SECURITY_DESCRIPTOR_CONTROL
. Si no se especifica este parámetro, la marca SE_SACL_DEFAULTED se borra.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
CSecurityDesc::ToString
Convierte un descriptor de seguridad en un formato de cadena.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
Parámetros
pstr
Puntero a una cadena terminada en null que recibirá el descriptor de seguridad de formato de cadena.
si
Especifica una combinación de marcas de bits de SECURITY_INFORMATION para indicar los componentes del descriptor de seguridad que se van a incluir en la cadena de salida.
Valor devuelto
Devuelve true si la operación se realiza correctamente; de lo contrario, devuelve false.
Comentarios
Una vez que el descriptor de seguridad está en formato de cadena, se puede almacenar o transmitir más fácilmente. Use el método CSecurityDesc::FromString
para volver a convertir la cadena en un descriptor de seguridad.
El parámetro si puede contener las marcas de SECURITY_INFORMATION siguientes:
Valor | Significado |
---|---|
OWNER_SECURITY_INFORMATION | Incluir al propietario. |
GROUP_SECURITY_INFORMATION | Incluir al grupo principal. |
DACL_SECURITY_INFORMATION | Incluir la DACL. |
SACL_SECURITY_INFORMATION | Incluir la SACL. |
Si la DACL es null y el bit de control SE_DACL_PRESENT se establece en el descriptor de seguridad de entrada, se produce un error en el método.
Si la DACL es null y el bit de control SE_DACL_PRESENT no se establece en el descriptor de seguridad de entrada, la cadena de descriptor de seguridad resultante no tiene un componente D:. Consulte Formato de cadena de descriptor de seguridad para obtener más detalles.
Este método llama a ConvertStringSecurityDescriptorToSecurityDescriptor.
Consulte también
Ejemplo de seguridad
SECURITY_DESCRIPTOR
Información general sobre la clase
Funciones globales de seguridad