更改SqlConnection,Credentials属性

DCruz22

因此,我有一个登录页面,我必须执行一个验证:“如果用户为“ 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属性的方法吗?

提前致谢。

DCruz22

好像您可以修改凭据(如果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和的情况下制作了对象的副本这样我以后可以添加新的希望这对其他面临类似问题的人有所帮助。passwordconnectionStringCredential

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章