使用 Visual Guard .Net 重用 Windows 帐户进行应用程序访问控制





0/5 (0投票)
了解如何通过重用 Windows 帐户进行身份验证来控制对 .NET 应用程序的访问。与 Active Directory 集成并向 Windows 帐户授予角色和权限。感谢 .NET 反射机制,无需编写代码即可定义权限。
引言
控制对公司应用程序的访问通常意味着
- 身份验证功能,以验证进入应用程序的用户的身份
- 权限功能,以限制他们对应用程序数据和功能的访问
如果您需要重用 Active Directory 中存储的 Windows 帐户进行身份验证,那么别无选择。
Visual Guard 是 .NET 应用程序中访问控制的全面解决方案。它在同一个工具中结合了身份验证、权限和审计功能。
本文演示了如何重用 Windows 帐户来验证最终用户并使应用程序适应用户权限。
Visual Guard .NET 能为您做什么?
下面的屏幕截图显示了一个由 Visual Guard .Net 保护的应用程序的结果
- 用户使用当前的 Windows 帐户自动进行身份验证。
- 应用程序打开,无需任何用户凭据
- 自动强制执行用户权限
以下是应用程序为符合用户权限而更改的一些示例
示例 1:隐藏或禁用控件
下面的屏幕截图显示了一个员工表单,分别在没有和有 Visual Guard 强制执行的限制的情况下:一个字段被隐藏,一个按钮被禁用。
示例 2:筛选数据
您可能需要限制对敏感数据的访问。
下面的示例筛选了一个列表,以隐藏用户不应访问的记录。
如果需要,您还可以隐藏列或特定字段……
先决条件
对于本教程,您需要安装 Microsoft Visual Studio 2008 或 Visual Studio 2005。下面的代码示例用于集成到 winform C# 应用程序中。winform VB.NET 或ASP.NET 的代码示例可在此处获取。
从 Visual Guard 网站可获得免费的 30 天试用版。
步骤 1:在 Visual Guard 中声明 Windows 帐户
为此,您将使用 Visual Guard 控制台(无代码)。
打开 Visual Guard 控制台,并使用默认的主管理员帐户登录(用户名='Admin' / 密码='pwd')。
主管理员拥有所有功能的完全访问权限。其他角色可用于开发人员、管理员和审计员,他们只能执行开发、身份管理或审计任务。
在控制台中,打开存储库=>用户,右键单击并选择“添加 Windows 用户或组”。
将打开以下对话框
选择您要授予应用程序访问权限的 Windows 帐户或组。在一个存储库中,Visual Guard 可以管理来自多个域的帐户,只要它们属于同一林。
步骤 1 已完成,Windows 帐户现已在 Visual Guard 存储库中声明。
我们现在将
- 将您的应用程序与 Visual Guard 集成
- 创建权限以限制对您应用程序的访问
- 将此权限授予 Windows 帐户
步骤 2:将 Visual Guard 集成到您的应用程序中
将 Visual Guard 集成到您的应用程序中非常简单。
- 在项目中引用 Visual Guard 程序集
在 Visual Studio(2005 或 2008)中打开您的项目,并将 Visual Guard 的程序集作为您项目的引用添加,如下所示
VisualGuard.Security
是主要程序集,始终需要。- 然后,您应该包含对应于您的应用程序类型的程序集(Winforms、Webforms、WebServices)。
- 最后,您将包含对应于您的存储库的程序集(Oracle、SQLServer、文件)。
- 添加以下代码
此代码将使用当前的 Windows 帐户验证用户,并加载该应用程序的用户权限。
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Novalys.VisualGuard.Security;
using Novalys.VisualGuard.Security.WinForm;
namespace ADdemo
{
static class Program
{
/// <summary>
/// Main
Entry point of the application
/// </summary>
[STAThread]
static
void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Load
security
VGAuthorizationState
state = VGSecurityManager.LoadSecurity (
System.Security.Principal.WindowsIdentity.GetCurrent());
if
(state.IsFailed)
{
if
(state.IsUserNotFound)
{
MessageBox.Show("Your
are not declared in the security repository");
}
else
{
if
(state.IsUserNotAuthorized)
{
MessageBox.Show("Your
are not authorized to log on to this application");
}
}
}
else
{
Application.Run(new Form1());
}
}
}
}
- 创建存储库并声明您的应用程序
在 Visual Guard 控制台中,打开菜单 [文件 - 添加存储库],然后按照向导说明进行操作。选择“创建新的空存储库”,然后选择“文件”作为存储库类型,指定新文件存储库的名称和位置,并确保选择 Windows 身份验证模式。
Visual Guard 现在已与您的应用程序集成,并且您的应用程序已在存储库中声明。
您会在此处找到一个类似的ASP.NET 应用程序示例
步骤 3:定义权限并将其授予 Windows 帐户
这是它的工作原理
用户被授予一个角色。
一个角色包含一组权限。
一个权限集包含权限。
一个权限包含技术操作。
默认情况下,权限是硬编码在应用程序中的。
Visual Guard 仍然支持此可能性。但是,该工具提供了一个有趣的替代方案,基于 .NET 反射机制。
您可以在 Visual Guard 中声明权限(而不是在应用程序中编写代码),Visual Guard 将在运行时动态应用它们。总之,安全规则与应用程序代码分离,并且可以在不访问代码的情况下进行演变。您可以在运行时添加或修改权限,将权限授予角色,并将角色授予用户。维护安全时无需重新构建您的应用程序!
大多数 Visual Guard 权限都包括更改对象属性以限制用户访问(禁用或隐藏控件、筛选网格……)。还提供更复杂的权限以满足特定需求(使用数据库中的值、依赖条件……)。
让我们举个例子
右键单击“权限”,选择“新建权限”,并将其命名为“隐藏员工地址”。
右键单击此新权限并选择“新建属性操作”(意味着您将定义一个操作,该操作将更改您应用程序中的属性)。
VG 权限编辑器打开。此向导将允许您定义
- 何时执行此操作(在哪个事件上,在什么条件下)
- 您要更改哪个对象.控件.属性
- 这些属性应取哪个值
如前所述,这只是一个存储在 VG 存储库中的声明,您不会在应用程序中编写代码。
- 选择此操作修改的对象。
此时,Visual Guard 使用 .NET 反射列出了您应用程序中的所有对象。然后,您可以选择“Employee”对象来修改它。
- 定义何时执行此操作。
默认情况下,在 Visual Guard 加载安全设置后立即执行操作。您可以在触发应用程序中的任何事件时执行操作,还可以定义该操作的执行条件
- 选择要修改的控件和属性,选择要修改的属性,然后更改其值。
例如,在我们的例子中,我们将决定隐藏地址和出生日期字段
在权限编辑器中
- 同时选择所有相应的字段
- 选择“可见”属性
- 选择“false”作为此属性的值
- 单击“完成”按钮。
现在已定义权限,您仍然需要将此权限授予用户。
因此,您应该
- 将此新权限包含在权限集中(拖放)
- 将此权限集授予一个角色(拖放)。
- 将此角色授予用户帐户(用户名/右键单击/编辑角色列表)。
现在,如果我们从当前的 Windows 会话中打开应用程序,员工的地址字段已被动态隐藏。
如果您想了解更多关于 Visual Guard .NET 的信息,请访问www.visual-guard.com
- 用户身份验证
管理用户名/密码帐户或重用 Active Directory 帐户。
验证访问您应用程序的用户身份 - 用户权限
借助我们创新的方法,顷刻间即可创建高度精细化的权限。
控制用户如何访问您的应用程序 - 审计和报告
保留审计跟踪并监控应用程序中的敏感事件。
符合法律要求(SOX、ISO、HIPAA……) - 查看 Visual Guard Flash 演示
- 请求现场演示