C# SQL密码策略过期

C# SQL密码策略过期,c#,asp.net,sql,sql-server-2008,C#,Asp.net,Sql,Sql Server 2008,我敢肯定,一定有人以前有过这个问题。我在一家公司工作,审计要求我们的开发人员在我们的应用程序中强制执行密码策略。我们已经创建了SQL登录并实施了密码策略。我们最近面临的问题是,当密码过期时,SQL管理员必须手动解锁每个登录。 用户抱怨他们没有收到任何提醒,提醒他们应该更改密码。 我们怎样才能达到这个目标?我们想要的是能够强制执行密码策略(密码长度、过期),并且能够在密码过期前至少15天通知用户 编辑1 我的应用程序基于桌面,也基于web。基于桌面的应用程序使用SQL登录进行自我验证,而asp.n

我敢肯定,一定有人以前有过这个问题。我在一家公司工作,审计要求我们的开发人员在我们的应用程序中强制执行密码策略。我们已经创建了SQL登录并实施了密码策略。我们最近面临的问题是,当密码过期时,SQL管理员必须手动解锁每个登录。
用户抱怨他们没有收到任何提醒,提醒他们应该更改密码。
我们怎样才能达到这个目标?我们想要的是能够强制执行密码策略(密码长度、过期),并且能够在密码过期前至少15天通知用户

编辑1

我的应用程序基于桌面,也基于web。基于桌面的应用程序使用SQL登录进行自我验证,而asp.net Intranet网站使用由asp.net网站管理工具创建的用户。

好的,您可以通过此查询选择登录

select * from sys.sql_logins where is_expiration_checked=1

然后选中以获取
DaysUntilExpiration
。只需创建一个每天检查密码并通过电子邮件通知用户的服务。

作为SQL代理作业或SSIS包的一部分,您可以使用此脚本获取用户密码何时过期(如果需要更复杂的处理):


之后,您需要将用户名与其密码关联起来,并在密码过期之前发送电子邮件。

这是正常的过程吗?我的意思是,是否每个开发人员都必须在审计需要此类标准的情况下这样做?另外,我如何检查密码长度和标准?这取决于系统的构建方式。是否允许用户直接访问数据库。我使用特殊的内部网站允许用户更改密码,并拥有自己的密码提供商。如果您不介意的话,可以给我看一下您的工作代码吗?使用ASP.NET网站管理工具创建的用户名如何?请编辑您的问题并详细说明您的问题所在。德克萨斯州。
USE [master]
GO
SELECT [name] AS [sa]
      ,LOGINPROPERTY([name], 'PasswordLastSetTime') AS [PasswordLastResetDT]
      ,DATEDIFF(DAY, CONVERT([datetime],LOGINPROPERTY([name],'PasswordLastSetTime')),GETDATE()) AS [DaysUntilExpiration]
      ,LOGINPROPERTY([name], 'BadPasswordCount') AS [BadPasswordCount]
      ,LOGINPROPERTY([name], 'BadPasswordTime') AS [BadPasswordDT]
      ,LOGINPROPERTY([name], 'HistoryLength') AS [HistoryLength]
      ,LOGINPROPERTY([name], 'IsExpired') AS [IsExpired]
      ,LOGINPROPERTY([name], 'IsLocked') AS [IsLocked]
      ,LOGINPROPERTY([name], 'IsMustChange') AS [IsMustChange]
      ,LOGINPROPERTY([name], 'LockoutTime') AS [LockoutTime]
FROM [sys].[sql_logins]
GROUP BY [name]