1
在我的ASP.NET Web API應用程序我建立一個自定義的JsonConverter
任何DateTime
字符串轉換爲JSON對象DateTimeOffset
,使用登錄用戶的偏移。如何獲取自定義JsonConverter中的當前IPrincipal?
我this article的IPrincipal
正在在序列化過程復位已經閱讀。
溶液中this article,我在我的應用程序中實現提供。
作者沒有提及的是如何在JsonConverter的ReadJson()
方法內實際檢索IPrincipal
。
所以我現在困在這裏。
internal class CustomDateTimeOffsetConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer,
object value,
JsonSerializer serializer)
{
if (value is DateTimeOffset)
{
var date = (DateTimeOffset)value;
value = date.LocalDateTime;
}
serializer.Serialize(writer, value);
}
public override object ReadJson(JsonReader reader,
Type objectType,
object existingValue,
JsonSerializer serializer)
{
if (existingValue is DateTimeOffset)
{
// How to get the current logged in IPrincipal?
// var user = ...
}
}
public override bool CanConvert(Type objectType)
{
return true;
}
}