Objetos PrincipalPermission
El modelo de seguridad basada en funciones admite un objeto de permiso similar a los objetos de permiso que se encuentran en el modelo de seguridad de acceso a código. Este objeto, PrincipalPermission, representa la identidad y la función que una clase principal concreta tiene que ejecutar. Puede utilizar la clase PrincipalPermission para comprobaciones de seguridad tanto declarativas como imperativas.
Para implementar la clase PrincipalPermission de forma imperativa, cree una instancia nueva de la clase e inicialícela con el nombre y la función que desee que los usuarios tengan para el acceso al código. Por ejemplo, el código siguiente inicializa una instancia nueva de este objeto con una identidad de "Joan"
y una función de "Teller"
.
String id = "Joan";
String role = "Teller";
PrincipalPermission principalPerm = new PrincipalPermission(id, role);
Dim id As String = "Joan"
Dim role As String = "Teller"
Dim principalPerm As New PrincipalPermission(id, role)
Puede crear un permiso similar de forma declarativa utilizando la clase PrincipalPermissionAttribute. El código siguiente inicializa de forma declarativa la identidad en "Joan"
y la función en "Teller"
.
[PrincipalPermissionAttribute(SecurityAction.Demand, Name = "Joan", Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Name := "Joan", Role := "Teller")>
Cuando se realiza la comprobación de seguridad, tanto la identidad como la función especificadas deben coincidir para que la comprobación se efectúe correctamente. No obstante, cuando se crea el objeto PrincipalPermission, se puede pasar una cadena de identidad nula para indicar que el principal puede tener cualquier identidad. De forma similar, si se pasa una cadena de función nula, esto indica que el principal puede ser miembro de cualquier función (o de ninguna). En el caso de la seguridad declarativa, se puede obtener el mismo resultado omitiendo la propiedad. Por ejemplo, el código siguiente utiliza la clase PrincipalPermissionAttribute para indicar de forma declarativa que un principal puede tener cualquier nombre, pero debe tener la función de Teller.
[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Teller")]
<PrincipalPermissionAttribute(SecurityAction.Demand, Role := "Teller")>
Vea también
Referencia
PrincipalPermission
PrincipalPermissionAttribute