int userId = 0;
string roles = string.Empty;
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("Validate_User"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Username", Login1.UserName);
cmd.Parameters.AddWithValue("@Password", Login1.Password);
cmd.Connection = con;
con.Open();
<{1>}中的,连接字符串定义为
web.config
但是当我运行它时,我收到一个错误:
System.Data.SqlClient.SqlException:无法打开数据库&#34; LoginDB&#34;登录请求。登录失败。
登录失败
用户&#39; NT AUTHORITY \ SYSTEM&#39;。
任何解决方案?
答案 0 :(得分:1)
在使用集成安全性时,您必须为默认系统用户提供连接到数据库的权限(不是一个好主意),或者配置Web应用程序用于在在DB上具有所需权限的特定用户。第三种选择是不使用集成安全性并将SQL用户名和密码存储在连接字符串中。但如果您可以使用集成安全性是最好的方法。 HTH
答案 1 :(得分:0)
您可以在SQL Server中授予NT AUTHORITY\SYSTEM
用户权限,我不建议这样做。
另一种方法是使用SQL Server身份验证并指定User Id
和Password
<add name="constr" providerName="System.Data.SqlClient" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=False;User Id=userid;Password=password;MultipleActiveResultSets=True" />