2013-04-04 52 views
2

我试图开发一个应用程序,它允许通过WinForms和SQL Server CE数据库管理用户。我已经建立了一种方式让用户通过登录名在用户名和密码列表的数据库中登录。具有用户权限的SQL Server CE应用程序

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

有关如何完成此任何想法?

回答

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!! 
} 

问候

+0

谢谢,我会试试看! – 2013-04-10 19:08:27