Thomas Bandt

Über mich | Kontakt | Archiv

Stolpersteine beim Update von .NET 2.0 Beta 2 zur Final

Einiges ist mir dann jetzt doch vor die Füße gefallen:

Aus


   "Network"
>
      "xyz@xyz.de" host="smtp.abc.de"/>
   

wird


   "xyz@xyz.de"
deliveryMethod="Network">
      "smtp.abc.de" />
   

Den enstprechenden Fehler gibt es erst, wenn er darauf zugreifen will, nicht schon beim Laden wie man meinen könnte.

Außerdem, noch viel schwerwiegender ist folgendes:

Ich bilde mittels einer DataList Produkte eines Shops ab - jedes Produkt hat in seinem ItemTemplate einen Button, über den man das jeweilige Produkt in den Warenkorb legen kann. Mit 2.0 Beta 2 funktionierte das noch, jetzt erhalte ich beim Klick auf den Button diesen fehler:

"Invalid postback or callback argument. Event validation is enabled using
"true"
/> in configuration or <%@ Page
EnableEventValidation="true" %> in a page. For security purposes, this
feature verifies that arguments to postback or callback events originate
from the server control that originally rendered them. If the data is valid
and expected, use the ClientScriptManager.RegisterForEventValidation method
in order to register the postback or callback data for validation."

Grund: er erkennt die Buttons, denen er in der Schleife über die Produkte im DataList-Control ja spezifische ID's verpasst, nicht mehr als seine eigenen an, und vermutet daher einen Manipulationsversucht.

Netterweise bringt er auch gleich einen Lösungsvorschlag mit, den ich auch umgesetzt habe:

protected override void Render(HtmlTextWriter writer)
{
   RegisterOrderButtons();
   base.Render(writer);
}

private void RegisterOrderButtons()
{
   ImageButton add;
   foreach (DataListItem item in DLProducts.Items) 
   {
      add = (ImageButton)item.FindControl("DLAddToCart");
      this.Page.ClientScript.RegisterForEventValidation(add.UniqueID, add.CommandArgument);
   }
}

Nur funktioniert das nicht ... er registriert die Buttons nicht im ClientScript ...

Ich habe dazu bereits ein Posting im Forum von forums.asp.net abgesetzt, mal sehen was sich da tut. Ich habe noch ein paar Wochen Zeit, in denen ich mir jetzt mit einem "EnableEventValidation = false" über die Zeit helfe. Aber wenn die Anwendung um die es geht mal scharf wird, dann sollte das natürlich anders gelöst sein ...

Kommentare

  1. Entity schrieb am Samstag, 14. Januar 2006 17:40:00 Uhr:

    Hallo..

    ich habe auh das gleiche Problem wie du mit dem EnableEventValidation...
    Bin schon recht lange auf der Suche nach einer Lösung, aber finde nicht wirklich etwas. Ich wollte dich fragen ob du mir vielleicht mitteilen könntest falls du eine Lösung findest.

    Ich werde dir die Lösung natürlich auch nicht vorenthalten, falls ich drauf komme.

    mfg Patrick

    vanTulder@znet.at

    danke vielmals

    PS: sag hast du auch das Problem mit asp.2 dass dir die SessionVariablen ab und zu verloren gehen?`

    Ich vermute dass das mit dem nichtregistrieren der Controls zu tun hat, aber da bin ich mir noch nicht sicher.
  2. Thomas schrieb am Samstag, 14. Januar 2006 19:04:00 Uhr:

    Hallo,

    zufällig die Woche gelöst:

    http://blog.thomasbandt.de/PermaLink,guid,e3ddefd7-b52c-4b0b-9da4-79c4b91f25d3.aspx

    Gruß, Thomas
  3. bexonder schrieb am Donnerstag, 18. Dezember 2008 09:31:00 Uhr:

    hallo,

    hab das gleiche problem. und deine lösung scheint nicht mehr online zu sein. kannst du mir die bitte mailen.

    vielen dank schon mal.


« Zurück  |  Weiter »