如何在使用MUST_CHANGE选项创建的SQL Server中更改登录密码
本文关键字:Server SQL 密码 登录 创建 选项 MUST CHANGE | 更新日期: 2023-09-27 18:14:26
我正在用c#编写一个Windows窗体应用程序,其中用户必须连接到SQL Server数据库。潜在用户接收随机构建客户策略强制要求用户更改密码(SQL Server - option MUST_CHANGE)。
我有困难提供一个功能,允许用户在他们第一次尝试登录时更改给定的密码:每次尝试使用所提供的凭据连接到SQL Server错误号为18488的SqlException
,说明用户必须更改密码——这正是我想要做的。
我试过使用:
-
和
ALTER LOGIN
语句作为SqlCommand
ALTER LOGIN 'someLogin' WITH PASSWORD = 'newPassword', OLD_PASSWORD = 'oldPassword'
-
a
ServerConnection
,Server
和Login
对象发出aChangePassword(oldPassword, newPassword)
请求var serverConnection = new ServerConnection(someSQlConnection); serverConnection.Connect(); var server = new Server(serverConnection); var login = new Login(server, 'someLogin') { LoginType = LoginType.SqlLogin }; login.ChangePassword(oldPassword, newPassword);
问题是已经尝试连接到SQL Server如果失败,密码更改查询甚至不会执行。谁能给点提示如何解决这个问题?
使用静态ChangePassword
方法设置新密码:
System.Data.SqlClient.SqlConnection.ChangePassword(someSQlConnection,
"new_password");
根据文档:
这个方法打开它自己到服务器的连接,请求更改密码,并在更改密码后立即关闭连接完成。