Вы должны быть в состоянии использовать «принципал»; вход в ASP.NET настраивает IIRC, и вы можете сделать это самостоятельно для winforms, WCF, WPF и т. д. Затем вы можете использовать, например:
public static bool IsInRole(string role)
{
var principal = Thread.CurrentPrincipal;
return principal == null ? false : principal.IsInRole(role);
}
Вы также можете заставить систему выполнить проверки за вас:
[PrincipalPermission(SecurityAction.Demand, Role="SuperAdmin")]
public void DropDatabase() {/* ... */}
Начиная с версии 3.5 (SP1?), Вы можете использовать механизм входа в ASP.NET для выполнения ваших входов в winform / wpf, включая настройку принципала; в свойствах проекта включите «Включить службы клиентских приложений» (или см. ссылку «Подробнее» на этой вкладке).
В качестве альтернативы, написание собственной личности / принципала довольно просто - посмотрите на IIdentity
и IPrincipal
; вам не нужно много делать.