Y a-t-il un moyen de contrôler l'accès aux méthodes à certains rôles dans .NET. Comme J'utilise l'authentification Windows uniquement pour récupérer les noms d'utilisateur et rien de plus.User des rôles sont conservés dans une application différente. Je pense que c'est possible par des attributs mais je ne suis pas vraiment sûr de la façon dont p> p>
3 Réponses :
Il est possible, je l'ai utilisé sur un projet Web qui a utilisé ASP.NET et AZMAN comme authentification.
Regardez sur Code Access Security P>
de la mémoire Toutes nos méthodes semblaient P> < pré> xxx pré>
Cela fait un certain temps, ce qui pourrait ne pas être réellement 100% correct. P>
Je suggère également fortement si vous allez mettre une protection à ce niveau à ce niveau à Regardez un Approche de permission orientée de la tâche car c'est beaucoup plus flexible que les autorisations basées sur le rôle p> p>
Je pense qu'il est pas i> se référant aux utilisateurs / groupes Windows.
Ma réponse ne se réfère pas aux utilisateurs / groupes Windows le fait
Oui, je pense que ça fait. Quoi, autre qu'un groupe Windows, votre «USerrole» doit être?
Vous venez de faire ob venir ma mémoire que nous l'avons fait la permission, mais il y avait encore des "rôles", ils étaient essentiellement des moyens de regrouper les autorisations, rien ici essentiellement attaché à Windows
Voir Joes Répondre C'était ce que j'essayais de suggérer
Vous pouvez le faire en utilisant la validation personnalisée. p>
1- Fabriquez une méthode dans une autre classe publique qui prennent une identification de connexion comme paramètre et rôles de retour sous forme de bits. P>
2- Appelez cette méthode sur l'événement Page_Load de la classe requise et enregistrez des bits retournés dans l'état de vue. P>
3- Validez maintenant la méthode requise sur la base des bits de rôles. P>
Vous pouvez le faire comme suit:
class A
{
//should only be called by Admins**
[PrincipalPermission(SecurityAction.Demand, Role="Admin")]
public void Method1()
{
}
//should only be called by Admins and PM's**
[PrincipalPermission(SecurityAction.Demand, Role="Admin")]
[PrincipalPermission(SecurityAction.Demand, Role="PM")]
public void Method2()
{
}
}
C'est ce que je faisais aussi, mais mettais beaucoup mieux
Non; Ce n'est pas possible grâce à des attributs. Quoi de sorte que vous voulez arriver si la méthode est appelée lors de l'exécution d'un utilisateur différent? Où voulez-vous mettre la validation?
Vous pourrait i> réussir avec une programmation orientée orientée (AOP) et Quelque chose comme PostShaRP A >.
"Non; ce n'est pas possible grâce à des attributs." ???? Qu'en est-il du PrincipalperMissionAttribute?