2010-06-01 21 views
1

Je sais qu'il est possible d'utiliser cette information dans une application winform, wpf ou console. Mais je préfère déterminer quel utilisateur avec quels rôles exécutent une méthode sepecific, afin que je puisse les décider et exécuter des codes différents.L'appartenance ASP.NET, la gestion des rôles et le profil sont-ils utilisables dans une bibliothèque de classes C#?

En outre dans une application de bureau. comment un utilisateur peut-il se connecter? Existe-t-il un contrôle de connexion winform ou wpf spécial?

Répondre

1

Vous devriez pouvoir utiliser le "principal"; la connexion ASP.NET met cette place IIRC, et vous pouvez le faire vous-même pour WinForms, WCF, WPF, etc. Vous pouvez ensuite utiliser, par exemple:

public static bool IsInRole(string role) 
{ 
    var principal = Thread.CurrentPrincipal; 
    return principal == null ? false : principal.IsInRole(role); 
} 

Vous pouvez également obtenir le système pour exécuter les contrôles pour vous:

[PrincipalPermission(SecurityAction.Demand, Role="SuperAdmin")] 
public void DropDatabase() {/* ... */} 

de 3.5 (? SP1) partir, vous pouvez utiliser le mécanisme de connexion ASP.NET pour effectuer vos identifiants Winform/WPF, y compris la mise en place d'un principal; dans les propriétés du projet, activez "Activer les services d'application client" (ou consultez le lien "En savoir plus" sur cet onglet).

Alternativement, écrire votre propre identité/principal est assez simple - regardez IIdentity et IPrincipal; vous n'avez pas à faire beaucoup.