C++ 如何使用C+中的pwdlastset值和maxpwdage值获取pwdexpirydate+;win32 API?
我使用ADSI获取maxpwdage值和pwdlastset值 现在我想检查密码到期日期C++ 如何使用C+中的pwdlastset值和maxpwdage值获取pwdexpirydate+;win32 API?,c++,windows,winapi,active-directory,adsi,C++,Windows,Winapi,Active Directory,Adsi,我使用ADSI获取maxpwdage值和pwdlastset值 现在我想检查密码到期日期 hr=pDomain->get_MaxPasswordAge(&ret) maxpwdage给出了432000 hr=pUser->get\u PasswordLastChanged(&expirationDate) pwdlastset给出41176.470196759263 如何使用此值实现密码到期日期?MaxPasswordAge 指示用户必须更改密码的最大时间间隔(以秒为单位) Password
hr=pDomain->get_MaxPasswordAge(&ret)代码>
maxpwdage给出了432000
hr=pUser->get\u PasswordLastChanged(&expirationDate)代码>
pwdlastset给出41176.470196759263
如何使用此值实现密码到期日期?MaxPasswordAge
- 指示用户必须更改密码的最大时间间隔(以秒为单位)
PasswordLastChanged
- 上次更改密码的时间
您需要将MaxPasswordAge添加到PasswordLastChanged
变更日期
类型:日期
- 日期和时间值。日期表示为双精度数字,其中1900年1月1日午夜为2.0,1900年1月2日为3.0,依此类推
- 可以使用VariantItemTosDateTime将日期转换为MS-DOS表示形式或从MS-DOS表示形式转换为日期
这意味着1.0代表一天
来自WTypes.h:
typedef double DATE;
因此:
86400=24*60*60=秒/天
然后使用获取人类可读的日期。@rkosegi:inexpirationDate.date
.date…你怎么能拥有date属性,在使用
,->
,::
…@SanjuMonu:对不起,我以为你使用的是VARIANT而不是date。请查看更新的答案。
DATE expirationDate;
VARIANT vtExpDate;
expirationDate += (double)(ret / 86400);
vtExpDate.vt = VT_DATE ;
vtExpDate.date = date ;