Classe AuthorizationResult
Contient les résultats d'une demande d'autorisation.
Espace de noms: System.ComponentModel.DataAnnotations
Assembly : System.ServiceModel.DomainServices.Server (dans system.servicemodel.domainservices.server.dll)
Utilisation
'Utilisation
Dim instance As AuthorizationResult
Syntaxe
'Déclaration
Public NotInheritable Class AuthorizationResult
public sealed class AuthorizationResult
public ref class AuthorizationResult sealed
public final class AuthorizationResult
public final class AuthorizationResult
Exemple
L'exemple suivant affiche une implémentation du AuthorizationAttribute qui utilise une valeur AuthorizationContext pour personnaliser l'authentification.
Public Class RestrictAccessToAssignedManagers
Inherits AuthorizationAttribute
Protected Overrides Function IsAuthorized(ByVal principal As System.Security.Principal.IPrincipal, ByVal authorizationContext As System.ComponentModel.DataAnnotations.AuthorizationContext) As System.ComponentModel.DataAnnotations.AuthorizationResult
Dim eph As EmployeePayHistory
Dim selectedEmployee As Employee
Dim authenticatedUser As Employee
eph = CType(authorizationContext.Instance, EmployeePayHistory)
Using context As New AdventureWorksEntities()
selectedEmployee = context.Employees.SingleOrDefault(Function(e) e.EmployeeID = eph.EmployeeID)
authenticatedUser = context.Employees.SingleOrDefault(Function(e) e.LoginID = principal.Identity.Name)
End Using
If (selectedEmployee.ManagerID = authenticatedUser.EmployeeID) Then
Return AuthorizationResult.Allowed
Else
Return New AuthorizationResult("Only the authenticated manager for the employee can add a new record.")
End If
End Function
End Class
public class RestrictAccessToAssignedManagers : AuthorizationAttribute
{
protected override AuthorizationResult IsAuthorized(System.Security.Principal.IPrincipal principal, AuthorizationContext authorizationContext)
{
EmployeePayHistory eph = (EmployeePayHistory)authorizationContext.Instance;
Employee selectedEmployee;
Employee authenticatedUser;
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
selectedEmployee = context.Employees.SingleOrDefault(e => e.EmployeeID == eph.EmployeeID);
authenticatedUser = context.Employees.SingleOrDefault(e => e.LoginID == principal.Identity.Name);
}
if (selectedEmployee.ManagerID == authenticatedUser.EmployeeID)
{
return AuthorizationResult.Allowed;
}
else
{
return new AuthorizationResult("Only the authenticated manager for the employee can add a new record.");
}
}
}
Notes
Vous utilisez le champ Allowed pour représenter une demande d'autorisation réussie. Les instances de cette classe qui ne sont pas Null ou Allowed représentent une demande d'autorisation refusée.
Une instance de cette classe qui contient Null peut indiquer l'approbation d'autorisation. Vous devez toujours utiliser la valeur Allowed plutôt que Null.
Hiérarchie d'héritage
System.Object
System.ComponentModel.DataAnnotations.AuthorizationResult
Sécurité des threads
Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plateformes
Plateformes de développement
Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000
Plateformes cibles
Change History
Voir aussi
Référence
Membres AuthorizationResult
Espace de noms System.ComponentModel.DataAnnotations