Можно ли использовать членство в ASP.NET, управление ролями и профиль в библиотеке классов C #? - PullRequest
1 голос
/ 01 июня 2010

Я знаю, что эту информацию можно использовать в winform, wpf или консольном приложении. Но я предпочитаю определить, какой пользователь с какими ролями выполняет определенный метод, чтобы я мог определиться с ними и запустить разные коды.

Кроме того, в настольном приложении. как пользователь может войти? Есть ли какой-нибудь особый контроль входа в winform или wpf?

1 Ответ

1 голос
/ 01 июня 2010

Вы должны быть в состоянии использовать «принципал»; вход в 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; вам не нужно много делать.

...