ASP.NET成员资格,角色管理和配置文件是否可在C#类库中使用?

时间:2010-06-01 11:43:47

标签: c# asp.net asp.net-membership class-library asp.net-roles

我知道可以在winform,wpf或console应用程序中使用此信息。但我宁愿确定哪个用户有哪些角色正在运行一个特定的方法,所以我可以决定它们并运行不同的代码。

此外,在桌面应用中。用户如何登录?是否有任何特殊的winform或wpf登录控件?

1 个答案:

答案 0 :(得分:1)

你应该可以使用“委托人”; 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登录,包括设置主体;在项目属性中启用“启用客户端应用程序服务”(或参见该选项卡上的“了解更多”链接)。

或者,编写自己的身份/校长非常简单 - 请查看IIdentityIPrincipal;你不必做很多事。