2016-09-13 64 views
0

我有一個程序對活動目錄中的對象運行一些驗證,我的一個檢查是查看是否在一年內設置了過期日期。通過UserPrincipal對象,我可以檢查.AccountExpirationDate日期以查看它是否有一個,但我如何查看該日期以確定它是否會在一年內過期?檢查活動目錄過期日期

這是目前我正在與

protected Check AccountExpiresMandatoryCheck = new Check() 
{ 
    ResultMessageTemplate = "User(s) don't have an expiry date or expiry date is greater than 1 year", 
    Run = delegate(Principal principal, AccountPoint point) 
    { 
     UserPrincipal user = principal as UserPrincipal; 
     if (user == null) return false; 
     return user.AccountExpirationDate != null || //check here if the date is a year or less; 
    } 
}; 

滾動我知道的東西像一個CheckAccountPoint是我做的自定義對象,但我希望這不會阻止任何人回答我的問題;

我將如何檢查是否到期日設定爲一年或更小

+0

您是否試圖查看日期是否在當前日期的一年內,或者是否將過期日期設置爲距創建日期一年? – efischency

+0

@efischency我在想第二個。 – BlueBarren

+0

我不認爲你會得到你正在尋找的東西。主要是由於我猜測你的系統管理員可能會改變過期日期,並且沒有跟蹤所有的改變,你怎麼知道最初設置的是什麼? – efischency

回答

0

這很難準確的告訴你以後,但是這可能會有幫助。

DateTime oneYearAgoToday = DateTime.Today.AddYears(-1); 
return user.AccountExpirationDate != null || user.AccountExpirationDate > oneYearAgoToday; 
+0

感謝您的答案,但與今天的日期相比並不能真正幫助我看到期限的長短。如果有人去,並提高到期不到一年,所以它仍然在一年內,那麼我認爲這不會選擇。雖然有什麼比沒有好,所以我會考慮它。 – BlueBarren

+0

我想爲我的目的,這實際上做我想做的。一年中任何時候的用戶賬戶都不應該超過一年。 – BlueBarren

0

您應該能夠從當前日期檢查的差異,看看是否過期天數少於365或針對你想要的任何參考日期。但是,你可以得到所有排序從差值和比較針對

var dateDifference = theUser.AccountExpirationDate - DateTime.Now; 
if (dateDifference != null) 
    Debug.WriteLine(dateDifference.Value.Days); 
+0

但是沒有辦法獲得在活動目錄中設置的過期日期嗎? – BlueBarren

+0

好吧,如果你正在尋找,那麼我認爲我們不能得到那個。這是您正在查看的一種記錄細節。 – Versatile

+0

問題是,從來沒有登錄,所以我認爲我運氣不好。 – BlueBarren