Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有用户权限的SQL Server CE应用程序_C#_Winforms_Security_Sql Server Ce - Fatal编程技术网

C# 具有用户权限的SQL Server CE应用程序

C# 具有用户权限的SQL Server CE应用程序,c#,winforms,security,sql-server-ce,C#,Winforms,Security,Sql Server Ce,我正在尝试开发一个应用程序,允许通过WinForms和SQLServerCE数据库管理用户。我已经为用户建立了一种方法,通过表数据库中的登录集登录,其中包含用户名和密码列 现在,我正试图找出限制对应用程序特定功能的访问的最佳方法。我的目标是将应用程序分为多个模块(客户、员工、账单等),并为用户提供整个模块的读写权限。稍后,我可能会尝试在每个表单的基础上实现安全性 关于如何实现这一点有什么想法吗?首先,您需要在SQL CE上创建角色表 因此,您的UserTable可能会在每个用户中添加一个Role

我正在尝试开发一个应用程序,允许通过WinForms和SQLServerCE数据库管理用户。我已经为用户建立了一种方法,通过表数据库中的登录集登录,其中包含用户名和密码列

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


关于如何实现这一点有什么想法吗?

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

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

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

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

创建
公共字符串角色
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!!
}

致以最诚挚的问候

谢谢,我会试一试的!