You should be able to use the "principal"; the ASP.NET login sets this up IIRC, and you can do it yourself for winforms, WCF, WPF, etc. You can then use, for example:
public static bool IsInRole(string role)
{
var principal = Thread.CurrentPrincipal;
return principal == null ? false : principal.IsInRole(role);
}
You can also get the system to execute the checks for you:
[PrincipalPermission(SecurityAction.Demand, Role="SuperAdmin")]
public void DropDatabase() {/* ... */}
From 3.5 (SP1?) onwards, you can use the ASP.NET login mechanism to perform your winform/wpf logins, including setting up a principal; in project properties enable "Enable client application services" (or see the "Learn more" link on that tab).
Alternatively, writing your own identity/principal is pretty simple - look at IIdentity
and IPrincipal
; you don't have to do a lot.