【发布时间】:2016-02-07 13:29:07
【问题描述】:
在我的 ASP.NET Web API 应用程序中,我正在构建一个自定义 JsonConverter,以使用登录的用户偏移量将 Json 对象中的任何 DateTime 字符串转换为 DateTimeOffset。
我在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;
}
}
【问题讨论】:
标签: c# asp.net asp.net-web-api json.net iprincipal