在当今的数字化时代,应用程序的安全性至关重要。确保用户的身份验证和权限管理是保护数据和应用程序功能不被未授权访问的关键。Visual Guard .NET 是一个全面的.NET应用程序访问控制解决方案,它结合了身份验证、权限和审计功能。本文将展示如何使用Visual Guard .NET来重用Windows账户进行身份验证,并根据用户权限调整应用程序。
Visual Guard.NET 通过自动使用当前的Windows账户对用户进行身份验证,无需请求任何用户凭据即可打开应用程序,并自动执行用户权限。以下是应用程序根据用户权限进行调整的示例:
以下截图展示了由Visual Guard实施限制的员工表单,一个字段被隐藏,一个按钮被禁用。
您可能需要限制对敏感数据的访问。以下示例过滤了一个列表,以隐藏用户不应访问的记录。如果需要,您还可以隐藏列或特定字段。
本教程需要安装Microsoft Visual Studio 2008或Visual Studio 2005。以下代码示例是用于集成到winform C#应用程序中的。winform VB.NET或ASP.NET的代码示例可以在这里找到。
为此,您将使用Visual Guard控制台(无需编码)。使用默认的管理员账户(用户名='Admin'/密码='pwd')登录Visual Guard控制台。管理员拥有对所有功能的完全访问权限。其他角色适用于仅执行开发、身份管理和审计任务的开发人员、管理员和审计员。
在控制台中,打开“仓库=>用户”,右键单击并选择“添加Windows用户或组”。
将Visual Guard集成到您的应用程序非常简单。在Visual Studio(2005或2008)中打开您的项目,并添加Visual Guard程序集作为项目的引用。
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Novalys.VisualGuard.Security;
using Novalys.VisualGuard.Security.WinForm;
namespace ADdemo
{
static class Program
{
///
/// 主程序入口点
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// 加载安全
VGAuthorizationState state = VGSecurityManager.LoadSecurity(System.Security.Principal.WindowsIdentity.GetCurrent());
if (state.IsFailed)
{
if (state.IsUserNotFound)
{
MessageBox.Show("您的账户未在安全仓库中声明");
}
else if (state.IsUserNotAuthorized)
{
MessageBox.Show("您未被授权登录此应用程序");
}
}
else
{
Application.Run(new Form1());
}
}
}
}
用户被授予角色,角色包含权限集,权限集包含权限,权限包含技术操作。默认情况下,权限是硬编码在应用程序中的。使用Visual Guard,您可以在Visual Guard中声明权限(而不是在应用程序中编写代码),Visual Guard将在运行时动态应用它们。
大多数Visual Guard权限包括更改对象属性以限制用户访问(禁用或隐藏控件,过滤网格等)。Visual Guard还提供更复杂的权限以满足特定需求(使用数据库中的值,依赖条件等)。
右键单击“权限”,选择“新建权限”,并将其命名为“隐藏员工地址”。右键单击此新权限,选择“新建属性操作”(意味着您将定义一个将在应用程序中更改属性的操作)。
Visual Guard权限编辑器将打开。此向导将允许您定义:
如前所述,这只是一个存储在VG仓库中的声明,您不需要在应用程序中编写代码。
选择此操作修改的对象。在这一点上,Visual Guard使用.NET反射列出了您应用程序中的所有对象。然后,您可以选择对象“Employee”进行修改。
定义何时执行此操作。默认情况下,操作将在Visual Guard加载安全性后立即执行。您可以在应用程序中触发任何事件时执行操作,还可以定义此操作执行的条件。
选择您想要修改的控件和属性,选择您想要修改的属性,并更改其值。例如,在案例中,将决定隐藏地址和出生日期字段:
现在权限已定义;您仍然需要将此权限授予用户。因此,您应该: