2010-01-17 3 views
3

Dans ma solution VS, j'ai deux projets. Un pour l'interface Web, un autre pour DataAcess et BusinessLogic. Je sais que je peux vérifier si l'utilisateur actuellement connecté est employé dans le projet d'interface Web comme celui-ci à partir du code derrière:Vérification de l'appartenance ASP.NET si un utilisateur occupe un rôle dans la classe personnalisée

Dim isEmployee = User.IsInRole("Employee") 

Le problème est que j'ai un UserManagemeNT d'appel de classe dans mon projet DA et BL qui Je veux également vérifier le rôle de l'utilisateur actuellement connecté. Je ne peux pas utiliser Dim isEmployee = User.IsInRole("Employee") car il n'a pas de page ASPX.

Que dois-je faire pour vérifier le rôle de l'utilisateur dans ma classe personnalisée?

Merci.

Répondre

4

Vous devez référencer System.Web dans votre projet d'entreprise. Ensuite, procédez comme suit:

Dim context As System.Web.HttpContext = System.Web.HttpContext.Current 
    Dim isRole As Boolean = context.User.IsInRole("Admin") 

ou C#

System.Web.HttpContext context = System.Web.HttpContext.Current; 
bool isRole = context.User.IsInRole("Admin"); 
+0

Merci beaucoup. Comment puis-je vérifier si un utilisateur dans un rôle particulier par userId (ou nom d'utilisateur) parce que j'ai un userId comme clé étrangère dans une table? En fait, ma fonction prend un userId comme param pour vérifier un rôle. –

+1

Voir le code ci-dessous dans le prochain commentaire, et n'oubliez pas de marquer ceci comme une réponse si cela vous a été utile! –

+0

Dim isInRole As Boolean = System.Web.Security.Roles.IsUserInRole ("Bayonian", "Admin") –

0

Dans votre application Web, lorsque vous déterminez le (s) rôle (s) d'un utilisateur, le code doit appeler des objets métier d'une sorte qui effectuent la détermination. La dépendance va donc de votre application Web à votre couche de gestion (c'est-à-dire que votre application Web nécessite votre couche de gestion), et non l'inverse.

+0

Je sais ... mais que ce qui est ce que je demande. Que dois-je faire pour vérifier si un utilisateur occupe un rôle dans la classe de couche de gestion personnalisée? Je sais seulement comment vérifier le code derrière. –

+0

Bayonian: Comment implémentez-vous actuellement 'IsInRole()' dans votre application Web? Vous utilisez un fournisseur standard ou personnalisé? –

+0

Utilisation du fournisseur standard. –

Questions connexes