2

みんな、

簡単な質問があります。ヘルパー制御テーブル「webpages_Membership」のフィールド「PasswordChangeDate」(Web.Security Helper を使用して自動的に入力されると確信しています) が 5 時間ずれた日付/時刻を記録している理由を誰か教えてもらえますか? パスワードを変更してフィールドを確認したところ、午前 10 時 50 分にパスワードを変更したところ、午後 3 時 50 分と表示されていました。Web.Security ヘルパー内で調整する必要がある場所 (おそらくタイム ゾーンなど) はありますか? 私が知っていることの 1 つは、WebMatrix の [サイト] セクションの [リクエスト] タブに移動すると、実際にはリクエストの正しいタイムスタンプがここに表示されることです。

どんな助けでも大歓迎です!

4

1 に答える 1

2

SimpleMembership Provider は UTC DateTimes を使用するため、おそらくタイム ゾーンは UTC - 5 (または米国の東側のどこか) です。独自のメンバーシップ プロバイダーを実装して、DateTime 値をメンバーシップ データベースに挿入するすべてのメソッドをオーバーライドするか、TimeZoneInfo.ConvertTimeFromUtcメソッドを使用して、格納された時間を希望のタイム ゾーンのいずれかに変換できます。

ユーザーがパスワードを登録または変更した現地時間を表示することが重要である場合にできることは、登録時に現在どのタイムゾーンにいるのかを尋ねることです。次に、オフセット形式の UTC をプロファイルの一部として保存し、それを DateTime.AddHours メソッドで使用してタイム ゾーンの時間を計算できます。

于 2012-10-26T17:55:59.840 に答える