因此,我有一个登录页面,我必须执行一个验证:“如果用户为“ 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;
}
但是sqlConn.Credential = credentials;
即使该属性不是readonly
InvalidOperationException:不能将凭据与UserID,UID,Password或PWD连接字符串关键字一起使用。
还有其他更改Credentials
属性的方法吗?
提前致谢。
好像您可以修改凭据(如果SqlConnection
拥有用户和密码)。我使用本教程的示例来使其工作:
if (username.Equals("sa", StringComparison.OrdinalIgnoreCase))
{
using (SqlConnection conn = new SqlConnection(string.Format("Server={0};Initial Catalog={1};", sqlConn.DataSource, sqlConn.Database)))
{
var securePassword = new System.Security.SecureString();
foreach (char character in password)
{
securePassword.AppendChar(character);
}
securePassword.MakeReadOnly();
var credentials = new SqlCredential(username, securePassword);
conn.Credential = credentials;
conn.Open();
return true;
}
}
由于我无法修改Credential
属性,因此在中SqlConnection
没有username
和的情况下制作了对象的副本。这样我以后可以添加新的。希望这对其他面临类似问题的人有所帮助。password
connectionString
Credential
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句