0

有没有办法在winform应用程序中为一组用户实现域认证?

我正在用 C# 编写一个应用程序,它将安装在我们商店的几台 PC 上。我想密码保护程序的一部分功能,基本上是配置。我可以轻松地将密码硬编码到应用程序中,甚至制作加密密码存储,但我希望只有某些用户能够访问配置表单,并且我想使用组从我们的域集中管理这些用户。因此,属于“配置”组的任何人都可以访问表单、按下应用按钮等。

4

1 回答 1

0

要检查用户是否在特定的 Windows 组中,WindowsPrincipal.IsInRole,例如:

bool IsInGroup(string user, string group)
{
    using (var identity = new WindowsIdentity(user))
    {
        var principal = new WindowsPrincipal(identity);
        return principal.IsInRole(group);
    }
}

要查看当前的用户是什么,请使用Thread.CurrentPrincipal

查看c# 检查用户是否属于组?了解更多信息和一些讨论。

但是,这是您的用例的最佳解决方案吗?如果您在“[您的] 商店中”,是指多个用户将使用一台计算机的销售终端吗?在这种情况下,用户可能不想每次都登录或注销。也许将配置移动到单独的应用程序,使用文件权限保护配置(例如对非管理员只读)并限制对配置应用程序的访问是更好的解决方案。

于 2012-09-12T13:24:50.097 回答