Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este ejemplo muestra cómo utilizar <serviceAuthorization> element para habilitar el uso del atributo PrincipalPermissionAttributepara autorizar el acceso a las operaciones de servicio. Este ejemplo se basa en el ejemplo Ejemplo de introducción. El servicio y cliente se configuran utilizando wsHttpBinding Element. El atributo mode de Security element se ha definido en Message y clientCredentialType se ha establecido en Windows. PrincipalPermissionAttribute se aplica a cada método de servicio y restringe el acceso a cada operación. El llamador debe ser un administrador de Windows para tener acceso a cada operación.
En este ejemplo, el cliente es una aplicación de consola (.exe) y los Servicios de Internet Information Server (IIS) hospedan el servicio.
![]() |
---|
El procedimiento de configuración y las instrucciones de compilación de este ejemplo se encuentran al final de este tema. |
El archivo de configuración de servicio utiliza <serviceAuthorization> element para establecer el atributo principalPermissionMode :
<behaviors>
<serviceBehaviors>
<behavior>
...
<!-- The serviceAuthorization behavior sets the principalPermissionMode to UseWindowsGroups.
This puts a WindowsPrincipal on the current thread when a service is invoked. -->
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
Establecer principalPermissionMode en UseWindowsGroups habilita el uso de PrincipalPermissionAttribute basado en nombres del grupo de Windows.
PrincipalPermissionAttribute se aplica a cada operación para exigir al llamador que forme parte del grupo de administradores de Windows, como se muestra en el siguiente código de ejemplo.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Al ejecutar el ejemplo, las solicitudes y respuestas de la operación se muestran en la ventana de la consola del cliente. El cliente se comunica correctamente con cada operación si se está ejecutando bajo una cuenta que forme parte del grupo Administradores; de lo contrario, se deniega el acceso. Para experimentar con un error de autorización, ejecute el cliente con una cuenta que no forme parte del grupo Administradores. Presione ENTRAR en la ventana de la consola para cerrar el cliente.
Se puede notificar un servicio de los errores de autorización implementando IErrorHandler. vea Extensión de control a control de errores y creación de informes para obtener más información sobre la implementación de IErrorHandler
.
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código de la edición .NET de C# o Visual Basic de la solución, siga las instrucciones de Compilación de los ejemplos de Windows Communication Foundation.
Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Running the Windows Communication Foundation Samples.