J'essaie d'obtenir des autorisations de niveau objet dans MVC. J'ai cherché partout mais je peux seulement trouver des exemples qui ont 3 ans et plus et je n'arrive pas à le faire fonctionner.Création d'autorisations de niveau objet dans MVC
Dire que j'ai 2 modèles:
public class Supplier
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<ApplicationUser> LinkedUsers { get; set; }
}
et
public class ApplicationUser : IdentityUser
{
public string Id { get; set; }
public virtual ICollection<Supplier> LinkedSuppliers { get; set; }
}
J'ai aussi pour mes autorisations.
public enum SupplierUserPermissions
{
Edit = 1,
View = 2,
}
Chaque ApplicationUser
peut être lié à un grand nombre Suppliers
et chaque Supplier
peuvent être liés à un grand nombre ApplicationUsers
Entity Framework a créé une table avec FK de l'ID utilisateur et l'ID du fournisseur.
Comment puis-je créer des autorisations au niveau de l'objet pour chaque utilisateur? Par exemple, un utilisateur devrait être en mesure de seulement Voir certains fournisseurs, mais peut-être qu'ils peuvent Modifier un autre.
Comment devrais-je construire mes modèles ou comment puis-je le mieux mettre en œuvre? Je suis sûr que la sécurité basée sur les rôles standard ne le coupera pas, du moins pas proprement, ou est-ce que je me trompe? Editer: J'utilise ASP Identity 2 pour mon authentification.
Qu'est-ce que le système d'authentification utilisez-vous? Formulaires, Windows? Votre objet utilisateur est-il lié à ce système, par ex. Votre userId est-il contenu dans un cookie d'authentification? –
@PaulTaylor J'utilise ASP Identity 2. Oui, mon objet utilisateur est lié avec lui mais je peux l'étendre si nécessaire. J'ai ajouté cela à la question maintenant – Alex