ユーザー インターフェイスから渡された資格情報名、ID、およびパスワードを使用して、.NET で CREATE CREDENTIAL ステートメントを作成する必要があります。単純な実装は次のようになります (VB を許してください)。
Dim cmd As SqlClient.SqlCommand = c.CreateCommand
cmd.CommandText = "CREATE CREDENTIAL [" & credentialName & "] WITH IDENTITY = N'" & identityName & "', SECRET = N'" & password & "'"
動作しますが、SQL インジェクションに対して脆弱です。私はこのようなパラメータを使用しようとしました:
cmd.CommandText = "CREATE CREDENTIAL [@CREDENTIALNAME] WITH IDENTITY = @IDENTITYNAME, SECRET = @PASSWORD"
cmd.Parameters.AddWithValue("@CREDENTIALNAME", "myCred")
cmd.Parameters.AddWithValue("@IDENTITYNAME", "Tyler")
cmd.Parameters.AddWithValue("@PASSWORD", "SecretPassword")
しかし、 「@IDENTITYNAME」の近くで構文が正しくありませんというエラーが表示されます。ブラケットのさまざまな組み合わせ/ブラケットなしを試しましたが、何も機能しませんでした。