2

我正在尝试开发一个允许通过 WinForms 和 SQL Server CE 数据库管理用户的应用程序。我已经建立了一种用户通过登录设置在表数据库中的用户名和密码列的登录方式。

现在,我正在尝试找出限制对应用程序特定功能的访问的最佳方法。我的目标是将应用程序分类为模块(客户、员工、计费等),并授予用户对整个模块的读写权限。稍后我可能会尝试在每个表单的基础上实现安全性。

关于如何做到这一点的任何想法?

4

1 回答 1

1

首先,您需要在 SQL CE 上创建角色表。

因此,您的 UserTable 可能RoleID FK在每个用户中都添加了一个。

假设您有管理员和用户角色。

在您的每个表单中,添加安全处理程序方法/类来检查访问您的应用程序的用户的角色。

创建public string Role;puclic string UserName在每个表单中,您可以将其值传递给表单的其余部分。

您可以添加的客户表单加载示例

if(Role=="Admin")
{
    //visible all controls stuff
}
else
{
    //User
    //set controls to read only stuff
}

在您的登录表单上登录/确定单击事件

你可以做

//your stuff on getting the role of the user 
//validation stuff
string role =  // get user role;  
if (role!=null)
{
    //if you have MDI Parent
    var mdi = new MDIParent
    {
        UserName = txtUserName.Text,
        Role = role,
    };
    mdi.Show();    
    this.Hide();
}
else
{
    //Error user not valid!!
}

此致

于 2013-04-05T01:40:56.163 回答