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;
}
}