所以我有一个登录页面,我必须实现一个验证:'如果用户是“sa”,那么它应该使用该用户凭据连接到数据库',这意味着我必须修改我的SqlConnection对象的凭据:
if(username.Equals("sa", StringComparison.OrdinalIgnoreCase))
{
var securePassword = new System.Security.SecureString();
foreach(char character in password)
{
securePassword.AppendChar(character);
}
securePassword.MakeReadOnly();
var credentials = new SqlCredential(username, securePassword);
sqlConn.Close();
sqlConn.Credential = credentials;
sqlConn.Open();
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了一个例外,sqlConn.Credential = credentials;即使该财产不是readonly
InvalidOperationException:不能将凭据与用户 ID、UID、密码或 PWD 连接字符串关键字一起使用。
有没有其他方法可以更改Credentials属性?
提前致谢。
将引发 InvalidOperationException 异常:
或者你可以使用SqlConnectionStringBuilder,
string connectString = "Data source=.;initial catalog=yourDB;
User Id=user; Password=password";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder (connectString);
SqlConnection sqlConn= new SqlConnection(builder.ConnectionString);
Run Code Online (Sandbox Code Playgroud)
然后在你的方法中,
builder.Remove("User Id");
builder.Remove("Password");
// builder.Remove("integrated security"); if you had used
sqlConn.ConnectionString = builder.ConnectionString;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8447 次 |
| 最近记录: |