Десериализовать объект EventValidation
Я пытаюсь сериализовать и десериализовать хранилище проверки событий. Я использовал код на MSDN, чтобы сделать то же самое с viewstate. Я не могу получить данные из объекта EventValidation.
System.Web.UI.LosFormatter los = new System.Web.UI.LosFormatter();
var t = los.Deserialize("/wEdAAXD48AAvF6Ff7P5UOQbT3VqkrDKlMWdnNXfGOHHYL4xn7VF+rYDddmo2pWyOYlEzR9ytSa0+vS8Kw5xkFTTwf/ogY5mU3PIFIVTnINRkldVDi8fjE6FJuo5OYrccfM1phFxAalSeL3MjHSQK44wYPDs")
HashSet<object> h = new HashSet<object>();
foreach (object d in t)
{
DoSomething()
}
System.Web.UI.EventValidationStore - это тип объекта (?)
Я пытался использовать хэш-набор, список и т. Д. Я новичок в этом, и это было не из того, что я знаю, как делать, но хотел бы изучить его.
Я получаю ошибку: "оператор foreach не может работать с переменными типа" объект ", потому что" объект "не содержит общедоступного определения для" GetEnumerator ""
Я не смог найти на MSDN ничего о System.Web.UI.EventValidationStore.
Я прошу прощения, если это запутанный пост, я просто не знаю, как его спросить.
Обновление: я успешно десериализовал одну строку BaseV EventValidation, но другие оказались неуловимыми. Тот, что в сегменте кода, похоже, не работает.
Резюме: мне нужно иметь возможность декодировать / десериализовать и кодировать / сериализовать строку base64 для проверки событий в.NET.
1 ответ
__EVENTVALIDATION
структура поля является внутренней для ASP.NET и может быть изменена. Попытка десериализации / сериализации не поддерживается. Поддерживаемые способы взаимодействия с ним через страницы ValidateEvent
а также RegisterForEventValidation
API-интерфейсы.
Что именно вы пытаетесь достичь? Возможно, мы сможем найти поддерживаемый способ сделать это.