Compartir a través de


Clase CSid

Esta clase es un contenedor de una estructura SID (identificador de seguridad).

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CSid;

Miembros

Typedefs públicas

Nombre Descripción
CSid::CSidArray Una matriz de objetos CSid.

Constructores públicos

Nombre Descripción
CSid::CSid Constructor .
CSid::~CSid El destructor .

Métodos públicos

Nombre Descripción
CSid::AccountName Devuelve el nombre de la cuenta asociada al objeto CSid.
CSid::Domain Devuelve el nombre del dominio asociado al objeto CSid.
CSid::EqualPrefix Hace pruebas con los prefijos de SID (identificador de seguridad) para comprobar la igualdad.
CSid::GetLength Devuelve la longitud del objeto CSid.
CSid::GetPSID Devuelve un puntero a una estructura SID.
CSid::GetPSID_IDENTIFIER_AUTHORITY Devuelve un puntero a la estructura SID_IDENTIFIER_AUTHORITY.
CSid::GetSubAuthority Devuelve una subautoridad especificada en una estructura SID.
CSid::GetSubAuthorityCount Devuelve el recuento de subautoridades.
CSid::IsValid Hace pruebas con el objeto CSid para comprobar la validez.
CSid::LoadAccount Actualiza el objeto CSid según el nombre de la cuenta y el dominio, o una estructura SID existente.
CSid::Sid Devuelve la cadena de Id.
CSid::SidNameUse Devuelve una descripción del estado del objeto CSid.

Operadores

Nombre Descripción
CSid::operator = Operador de asignación.
CSid::operator const SID * Convierte un objeto CSid en un puntero dirigido a una estructura SID.

Operadores globales

Nombre Descripción
operator == Hace pruebas de dos objetos descriptores de seguridad para comprobar la igualdad
operator != Hace pruebas de dos objetos descriptores de seguridad para comprobar la desigualdad
operator < Compara el valor relativo de dos objetos descriptores de seguridad.
operator > Compara el valor relativo de dos objetos descriptores de seguridad.
operator <= Compara el valor relativo de dos objetos descriptores de seguridad.
operator >= Compara el valor relativo de dos objetos descriptores de seguridad.

Comentarios

La estructura SID es una estructura de longitud variable que se usa para identificar de forma única a usuarios o a grupos.

Las aplicaciones no deben modificar la estructura SID directamente, sino usar los métodos proporcionados en esta clase contenedora. Consulte también AtlGetOwnerSid, AtlSetGroupSid, AtlGetGroupSid y AtlSetOwnerSid.

Para una introducción al modelo de control de acceso en Windows, consulte Control de acceso en Windows SDK.

Requisitos

Encabezado: atlsecurity.h

CSid::AccountName

Devuelve el nombre de la cuenta asociada al objeto CSid.

LPCTSTR AccountName() const throw(...);

Valor devuelto

Devuelve el valor LPCTSTR que apunta al nombre de la cuenta.

Comentarios

Este método intenta buscar un nombre para el SID especificado (identificador de seguridad). Para conocer los detalles completos, consulte LookupAccountSid.

Si no se puede encontrar ningún nombre de cuenta para el SID, AccountName devuelve una cadena vacía. Este resultado puede producirse si un tiempo de espera de red impide que este método busque el nombre. También se produce en los identificadores de seguridad sin un nombre de cuenta correspondiente, como un SID que identifica una sesión de inicio de sesión.

CSid::CSid

Constructor .

CSid() throw();
CSid(const SID& rhs) throw(...);
CSid(const CSid& rhs) throw(...);

CSid(
    const SID_IDENTIFIER_AUTHORITY& IdentifierAuthority,
    BYTE nSubAuthorityCount,
    ...) throw(...);

explicit CSid(
    LPCTSTR pszAccountName,
    LPCTSTR pszSystem = NULL) throw(...);

explicit CSid(
    const SID* pSid,
    LPCTSTR pszSystem = NULL) throw(...);

Parámetros

rhs
Un objeto CSid o una estructura SID (identificador de seguridad) que ya existan.

IdentifierAuthority
La autoridad.

nSubAuthorityCount
El recuento de subautoridades.

pszAccountName
Nombre de la cuenta.

pszSystem
El nombre del sistema. Esta cadena puede ser el nombre de un equipo remoto. Si esta cadena es NULL, se usa el sistema local en su lugar.

pSid
Un puntero a una estructura SID.

Comentarios

El constructor inicializa el objeto CSid, que establece un miembro de datos interno en SidTypeInvalid o copia la configuración de un CSid, SID o una cuenta que ya existan.

Si se produce un error en la inicialización, el constructor lanzará una Clase CAtlException.

CSid::~CSid

El destructor .

virtual ~CSid() throw();

Comentarios

El destructor libera los recursos adquiridos por el objeto.

CSid::CSidArray

Una matriz de objetos CSid.

typedef CAtlArray<CSid> CSidArray;

Comentarios

Esta typedef especifica el tipo de matriz que se puede usar para recuperar identificadores de seguridad de una ACL (lista de control de acceso). Vea CAcl::GetAclEntries.

CSid::Domain

Devuelve el nombre del dominio asociado al objeto CSid.

LPCTSTR Domain() const throw(...);

Valor devuelto

Devuelve el LPCTSTR que apunta al dominio.

Comentarios

Este método intenta buscar un nombre para el SID especificado (identificador de seguridad). Para conocer los detalles completos, consulte LookupAccountSid.

Si no se puede encontrar ningún nombre de cuenta para el SID, Domain devuelve el dominio como una cadena vacía. Este resultado puede producirse si un tiempo de espera de red impide que este método busque el nombre. También se produce en los identificadores de seguridad sin un nombre de cuenta correspondiente, como un SID que identifica una sesión de inicio de sesión.

CSid::EqualPrefix

Hace pruebas con los prefijos de SID (identificador de seguridad) para comprobar la igualdad.

bool EqualPrefix(const SID& rhs) const throw();
bool EqualPrefix(const CSid& rhs) const throw();

Parámetros

rhs
La estructura del SID (identificador de seguridad) o el objeto CSid que se van a comparar.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Para obtener más información, vea EqualPrefixSid.

CSid::GetLength

Devuelve la longitud del objeto CSid.

UINT GetLength() const throw();

Valor devuelto

Devuelve la longitud en bytes del objeto CSid.

Comentarios

Si la estructura CSid no es válida, el valor devuelto no está definido. Antes de llamar a GetLength, use la función miembro CSid::IsValid para comprobar que la estructura CSid es válida.

Nota:

En las compilaciones de depuración, la función provocará un ASSERT si el objeto CSid no es válido.

CSid::GetPSID

Devuelve un puntero a una estructura SID (identificador de seguridad).

const SID* GetPSID() const throw(...);

Valor devuelto

Devuelve la dirección de la estructura SID subyacente del objeto CSid.

CSid::GetPSID_IDENTIFIER_AUTHORITY

Devuelve un puntero a la estructura SID_IDENTIFIER_AUTHORITY.

const SID_IDENTIFIER_AUTHORITY* GetPSID_IDENTIFIER_AUTHORITY() const throw();

Valor devuelto

Si el método se ejecuta correctamente, devuelve la dirección de la estructura SID_IDENTIFIER_AUTHORITY. Si su ejecución es incorrecta, el valor devuelto es indefinido. Puede producirse un error si el objeto CSid no es válido, en cuyo caso el método CSid::IsValid devuelve FALSE. Se puede llamar a la función GetLastError para obtener información ampliada sobre el error.

Nota:

En las compilaciones de depuración, la función provocará un ASSERT si el objeto CSid no es válido.

CSid::GetSubAuthority

Devuelve una subautoridad especificada en una estructura SID (identificador de seguridad).

DWORD GetSubAuthority(DWORD nSubAuthority) const throw();

Parámetros

nSubAuthority
La subautoridad.

Valor devuelto

Devuelve la subautoridad a la que nSubAuthority hace referencia. El valor de la subautoridad es un identificador relativo (RID).

Comentarios

El parámetro nSubAuthority especifica un valor de índice que identifica el elemento de matriz de subautoridad que el método devolverá. El método no realiza pruebas de validación en este valor. Una aplicación puede llamar a CSid::GetSubAuthorityCount para descubrir el intervalo de valores aceptables.

Nota:

En las compilaciones de depuración, la función provocará un ASSERT si el objeto CSid no es válido.

CSid::GetSubAuthorityCount

Devuelve el recuento de subautoridades.

UCHAR GetSubAuthorityCount() const throw();

Valor devuelto

Si el método se ejecuta correctamente, el valor devuelto es el recuento de subautoridades.

Si este método no se ejecuta bien, el valor devuelto es indefinido. Se produce un error en el método si el objeto CSid es no válido. Para obtener información de errores extendida, realice una llamada a GetLastError.

Nota:

En las compilaciones de depuración, la función provocará un ASSERT si el objeto CSid no es válido.

CSid::IsValid

Hace pruebas con el objeto CSid para comprobar la validez.

bool IsValid() const throw();

Valor devuelto

Devuelve TRUE si el objeto CSid es válido; si no lo es, devuelve FALSE. Este método no tiene información ampliada sobre el error; no llame a GetLastError.

Comentarios

El método IsValid valida el objeto CSid comprobando que el número de revisión está dentro de un intervalo conocido y que el número de subautoridades es menor que el máximo.

CSid::LoadAccount

Actualiza el objeto CSid según el nombre de la cuenta y el dominio, o una estructura SID (identificador de seguridad) existente.

bool LoadAccount(
    LPCTSTR pszAccountName,
    LPCTSTR pszSystem = NULL) throw(...);

bool LoadAccount(
    const SID* pSid,
    LPCTSTR pszSystem = NULL) throw(...);

Parámetros

pszAccountName
Nombre de la cuenta.

pszSystem
El nombre del sistema. Esta cadena puede ser el nombre de un equipo remoto. Si esta cadena es NULL, se usa el sistema local en su lugar.

pSid
Un puntero a una estructura SID.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE. Para obtener información de errores extendida, realice una llamada a GetLastError.

Comentarios

LoadAccount intenta buscar un identificador de seguridad para el nombre especificado. Para obtener más información, vea LookupAccountSid.

CSid::operator =

Operador de asignación.

CSid& operator= (const CSid& rhs) throw(...);
CSid& operator= (const SID& rhs) throw(...);

Parámetros

rhs
El SID (identificador de seguridad) o CSid para asignarlo al objeto CSid.

Valor devuelto

Devuelve una referencia al objeto actualizado CSid.

operator ==

Hace pruebas de dos objetos descriptores de seguridad para comprobar la igualdad.

bool operator==(
    const CSid& lhs,
    const CSid& rhs) throw();

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador ==.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador ==.

Valor devuelto

TRUE si los descriptores de seguridad son iguales; de lo contrario, devuelve FALSE.

operator !=

Hace pruebas de dos objetos descriptores de seguridad para comprobar la desigualdad.

bool operator!=(
    const CSid& lhs,
    const CSid& rhs) throw();

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador !=.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador !=.

Valor devuelto

TRUE si los descriptores de seguridad no son iguales; de lo contrario, devuelve FALSE.

operator <

Compara el valor relativo de dos objetos descriptores de seguridad.

bool operator<(
    const CSid& lhs,
    const CSid& rhs) throw();

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador <.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador <.

Valor devuelto

Es TRUE si lhs es menor que rhs; en caso contrario, es FALSE.

operator <=

Compara el valor relativo de dos objetos descriptores de seguridad.

bool operator<=(
    const CSid& lhs,
    const CSid& rhs) throw();

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador <=.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador <=.

Valor devuelto

Es TRUE si lhs es menor o igual que rhs; en caso contrario, es FALSE.

operator >

Compara el valor relativo de dos objetos descriptores de seguridad.

bool operator>(
    const CSid& lhs,
    const CSid& rhs) throw();

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador >.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador >.

Valor devuelto

Es TRUE si lhs es mayor que rhs; en caso contrario, es FALSE.

operator >=

Compara el valor relativo de dos objetos descriptores de seguridad.

bool operator>=(
    const CSid& lhs,
    const CSid& rhs) throw());

Parámetros

lhs
El SID (identificador de seguridad) o CSid que aparece en el lado izquierdo del operador >=.

rhs
El SID (identificador de seguridad) o CSid que aparece en el lado derecho del operador >=.

Valor devuelto

Es TRUE si lhs es mayor o igual que rhs; en caso contrario, es FALSE.

CSid::operator const SID *

Convierte un objeto CSid en un puntero dirigido a una estructura SID (identificador de seguridad).

operator const SID *() const;

Comentarios

Devuelve la dirección de la estructura SID.

CSid::Sid

Devuelve la estructura SID (identificador de seguridad) como una cadena.

LPCTSTR Sid() const throw(...);

Valor devuelto

Devuelve la estructura SID como una cadena en un formato adecuado para la presentación, el almacenamiento o la transmisión. Equivalente a ConvertSidToStringSid.

CSid::SidNameUse

Devuelve una descripción del estado del objeto CSid.

SID_NAME_USE SidNameUse() const throw();

Valor devuelto

Devuelve el valor del miembro de datos que almacena un valor que describe el estado del objeto CSid.

Valor Descripción
SidTypeUser Indica un usuario SID (identificador de seguridad).
SidTypeGroup Indica un grupo SID.
SidTypeDomain Indica un dominio SID.
SidTypeAlias Indica un alias SID.
SidTypeWellKnownGroup Indica un SID para un grupo conocido.
SidTypeDeletedAccount Indica un SID para una cuenta eliminada.
SidTypeInvalid Indica un SID no válido.
SidTypeUnknown Especifica un tipo de SID desconocido.
SidTypeComputer Indica un SID para un equipo.

Comentarios

Llame a CSid::LoadAccount para actualizar el objeto CSid antes de llamar a SidNameUse para devolver su estado. SidNameUse no cambia el estado del objeto (llamando a LookupAccountName o a LookupAccountSid), solo devuelve el estado actual.

Consulte también

Ejemplo de seguridad
Información general de clases
Funciones globales de seguridad
Operadores