SqlCredential Class

.NET Framework 4.5

SqlCredential provides a more secure way to specify the password for a login attempt using SQL Server Authentication.

SqlCredential is comprised of a user id and a password that will be used for SQL Server Authentication. The password in a SqlCredential object is of type SecureString.

SqlCredential cannot be inherited.

Windows Authentication (Integrated Security = true) remains the most secure way to log in to a SQL Server database.

System.Object
  System.Data.SqlClient.SqlCredential

Namespace:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)

public sealed class SqlCredential

The SqlCredential type exposes the following members.

  NameDescription
Public methodSqlCredentialCreates an object of type SqlCredential.
Top

  NameDescription
Public propertyPasswordReturns the password component of the SqlCredential object.
Public propertyUserIdReturns the user ID component of the SqlCredential object.
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

Use Credential to get or set a connection's SqlCredential object. Use ChangePassword to change the password for a SqlCredential object. For information on how a SqlCredential object affects connection pool behavior, see SQL Server Connection Pooling (ADO.NET).

An InvalidOperationException exception will be raised if a non-null SqlCredential object is used in a connection with any of the following connection string keywords:

  • Integrated Security = true

  • Password

  • User ID

  • Context Connection = true

The following sample connects to a SQL Server database using Credential:

// change connection string in the APP.CONFIG file
<connectionStrings>
  <add name="MyConnString"
       connectionString="Initial Catalog=myDB;Server=myServer"
       providerName="System.Data.SqlClient" />
</connectionStrings>

// then use the following snippet:
using System.Configuration;

System.Windows.Controls.TextBox txtUserId = new System.Windows.Controls.TextBox();
System.Windows.Controls.PasswordBox txtPwd = new System.Windows.Controls.PasswordBox();

Configuration config = Configuration.WebConfigurationManager.OpenWebConfiguration(Null);
ConnectionStringSettings connString = config.ConnectionStrings.ConnectionString[“MyConnString”];

using (SqlConnection conn = new SqlConnection(connString.ConnectionString))
{
SecureString pwd = txtPwd.SecurePassword;
pwd.MakeReadOnly();
SqlCredential cred = new SqlCredential(txtUserId.Text, pwd);
conn.Credential = cred;
conn.Open();

.NET Framework

Supported in: 4.5.3

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft