Десериализовать объект 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-интерфейсы.

Что именно вы пытаетесь достичь? Возможно, мы сможем найти поддерживаемый способ сделать это.

Другие вопросы по тегам