So i have a login page and i have to implement a validation: 'If the user is "sa" then it should connect to the Database using that users credentials', which means i have to modify the credentials of my SqlConnection object:
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;
}
But im getting an exception in sqlConn.Credential = credentials; even though the property is not readonly
InvalidOperationException: Cannot use Credential with UserID, UID, Password, or PWD connection string keywords.
Is there any other way to change the Credentials property?
Thanks in advance.
From https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.credential(v=vs.110).aspx
An InvalidOperationException exception will be raised:
Or you could use SqlConnectionStringBuilder,
string connectString = "Data source=.;initial catalog=yourDB;
User Id=user; Password=password";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder (connectString);
SqlConnection sqlConn= new SqlConnection(builder.ConnectionString);
Then in your method,
builder.Remove("User Id");
builder.Remove("Password");
// builder.Remove("integrated security"); if you had used
sqlConn.ConnectionString = builder.ConnectionString;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With