überprüfung timespan
Habe ich eine Methode, die eine Abfrage von active directory und liefert den Wert der Letzten Passwort-Reset auf eine lokale variable. Ich bin versucht zu vergleichen, der Wert auf das aktuelle Datum und die Zeit, und prüfen, ob es weniger als 24 Stunden. Ich glaube, ich bin in der Nähe, aber kann nicht scheinen, um diese zu arbeiten.
Dank,
Jason
string passwordLastSet = string.Empty;
passwordLastSet = DateTime.FromFileTime((Int64)(result.Properties["PwdLastSet"][0])).ToString();
public string lastReset(DateTime pwordLastReset)
{
if (DateTime.Now.AddHours(24) <= passwordLastSet)
{
return "try again later";
}
else
{
return "all is good";
}
}
InformationsquelleAutor Jason | 2011-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
:
sollte
InformationsquelleAutor BrokenGlass
Dieser code fast von selbst.
Hinweis, wie der code liest sich genau so, wie Sie angegeben in Englisch.
InformationsquelleAutor jason
Wie etwa (vorausgesetzt, ich habe gelesen, Ihre Absichten korrekt):
InformationsquelleAutor Rob
Können Sie auch TotalDays < 1
InformationsquelleAutor Vlad Bezden
du vergleichst eine string-variable und eine datetime-variable es ist nicht möglich um es zu vergleichen
ändern Sie die Zeichenfolge in DateTime
wenn Sie möchten, um es zu vergleichen mit der aktuellen Zeit
nutzen Sie einfach dieses
wenn Sie wollen, um es zu überprüfen, der größer als 24 ändern, um Zeit und vergleichen Sie es
DateTime.FromFileTime((Int64)(Ergebnis.Properties["PwdLastSet"][0])).ToString(); diese Zeile verursacht Fehler
ändern Sie die DateTime.FromFileTime((Int64)(Ergebnis.Properties["PwdLastSet"][0]));
Ich erkannte die Antwort auf meinen eigenen Kommentar, nur muss ich entfernen .ToString
InformationsquelleAutor Nighil
Werden pedantisch:
Müssen Sie prüfen, für Besondere Fälle vor der Umwandlung in DateTime - zum Beispiel pwdLastSet kann null sein, so sollten Sie dies überprüfen, bevor Sie versuchen zu konvertieren.
pwdLastSet
gespeichert ist, als UTC - also, dass eine Konvertierung in die lokale Zeit mitDateTime.FromFileTime
zurückkehren könnte eine mehrdeutige Zeit.Also, es wäre besser, verwenden
DateTime.FromFileTimeUtc
und vergleichen Sie mitDateTime.UtcNow
.Je nach genau das, was Sie erreichen wollen, können Sie auch wollen, um zu überprüfen der userAccountControl-flags - so etwas wie die folgende (ungetestet):
InformationsquelleAutor Joe
versuchen
DateTime.Now.AddHours(-24) <= passwordLastSet
wie Sie wollen, um zu simulieren, dass ist jetzt 24 Stunden in der Vergangenheit, nicht in ZukunftInformationsquelleAutor Naveed Ahmad