用实体框架将多个sql用户连接到一个数据库

问题描述:

您好,我是C#winform的初学者, 我必须通过登录表单(文本框:名称 - 密码)将多个用户(400个不同的用户)连接到单个sql数据库使用Winform C#,所有用户都是在数据库中创建的sql用户,并具有用户或管理员等角色。 我一直在寻找一个简单的方法来做到这一点与实体框架,但无法找到任何..任何人都有一个想法如何做到这一点? 感谢您的帮助。用实体框架将多个sql用户连接到一个数据库

+0

请仔细阅读该网站的上如何提问帮助。这个问题太广泛了。 –

是否每个用户都需要自己的登录数据库?

如果这是真的,你需要写一个特殊的连接字符串,像下面:

using System.Data.SqlClient; 

SqlConnection conn = new SqlConnection(); 
conn.ConnectionString = 
    "Data Source=ServerName;" + 
    "Initial Catalog=DataBaseName;" + 
    "User id=" + UserName + ";" 
    "Password=" + Password + ";"; 
conn.Open(); 

在接受用户名和密码一类将这个。

完整的示例:

class myConnection 
{ 
    public static SqlConnection GetConnection(string UserName, string Password) 
    { 
     string str = "Data Source=ServerName;Initial Catalog=DataBaseName;User id=" + UserName + ";Password=" + Password + ";"; 
     SQlConnection con = new SqlConnection(str); 
     con.Open(); 
     return con; 
    } 
} 

用户凭据在连接字符串中指定的,所以你需要建立与登录表单的用户的数据提供一个连接字符串。

var sqlBuilder = new SqlConnectionStringBuilder(); 

// Set the properties for the data source. 
sqlBuilder.DataSource = "ServerName"; 
sqlBuilder.InitialCatalog = "DatabaseName"; 

sqlBuilder.UserID = "USERNAME"; 
sqlBuilder.Password = "PASSWORD"; 

sqlBuilder.IntegratedSecurity = true; 

// Build the SqlConnection connection string. 
string providerString = sqlBuilder.ToString(); 

// Initialize the EntityConnectionStringBuilder. 
var entityBuilder = new EntityConnectionStringBuilder(); 

//Set the provider name. 
entityBuilder.Provider = "System.Data.SqlClient"; 

// Set the provider-specific connection string. 
entityBuilder.ProviderConnectionString = providerString; 

然后使用这个连接字符串初始化DbContext

var context = new DbContext(entityBuilder.ConnectionString);