Wie entsteht ein solcher Code

Ronald Nickel

Legendäres Mitglied
Hallo an alle Progger

unter dieser Adresse seht ihr mitunter mehr oder weniger ein Formular welches aber unkenntlich wurde. Kann mir jemand sagen wie das gemacht wird und warum der Browser dennoch ein Formular darin erkennt?

Gruß Ronny
 
also entweder bin ich blind und ich sehe nicht was du meinst, aber ich sehe 1. das Fomular und 2. auch im quellcode sind die <inputs> drin.
was meinst du denn genau mit unkenntlich??

Grüsse, Crazy
 
Ich verstehe auch nicht ganz, was du meinst.
Seh da nur ein Dotnetnuke Login.
 
Ganz unten im Quelltext ist was codiertes, aber womit erstellt und warum, keine Ahnung.
 
QUOTE (dieappenzeller @ Di 26.06.2007, 10:25) Ganz unten im Quelltext ist was codiertes, aber womit erstellt und warum, keine Ahnung.

nö, dass ist einfach ein ellenlanger Snippet...

Ist aber kein Script... Das wurde Serverseitig erstellt....


wird wohl eine Tracking ID sein....
 
CODE        <input name="ScrollTop" type="hidden" id="ScrollTop" />
       <input name="__dnnVariable" type="hidden" id="__dnnVariable" value="dshChange_imgIcon:exp-1dshReset_imgIcon:exp-1dshQuestionAnswer_imgIcon:exp-1" />
   <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/blablablabla...+Rb" />

falls du das meinst. Das wirst du bei jeder in ASP.NET erstellten Seite finden. Das ist der Viewstate der Seite. In diesem Zahlenmeer ist der gesamte Zustand aller Elemente auf der Seite (alle Formularfelder, Texte, Hintergrundfarben und so weiter) gespeichert. Wenn du die Seite abschickst kann man Serverseitig sehr einfach auf alle Elemente und deren aktueller Zustand zugreifen (ohne auf Request.Form zugreifen zu müssen).

Sie wollten da halt den Nachteil der Statuslosigkeit (was ein Wort!) von Webapplikationen gegenüber Winforms etwas mindern. In Winforms hast du als Entwickler jederzeit die Kontrolle über den Status jedes einzelnen Elementes - das hast du bei Webanwendungen nicht, da die Seite ja abgeschickt wird und im Moment des Abschickens das Programm auf der Serverseite eigentlich beendet ist (und somit jegliche Informationen über das "Produkt" verliert) - bis ein neuer Aufruf erfolgt.

Mit eben diesem Viewstate kann dann beim neuen Aufruf der Server die Zustände (Eigenschaften) der Elemente rekonstruieren und der Entwickler kann drauf Programmieren wie er es von "echten" Windowsprogrammen gewohnt ist.

edit: Bitte alle "Status" in meinem Post als "Zustand" lesen (merke ich gerade, wo ich die Antwort von Irene lese
biggrin.gif
)
 
Das ist eine ganz normale ASP.Net Seite
wink.gif


Obs jetzt Dotnetnuke ist oder nicht, weiss ich nicht. Aber es ist nichts daran unkenntlich gemacht, und mit dem "codierte" dürfte der Viewstate gemeint sein. Der sorgt unter anderem dafür, dass der Zustand von Controls zwischen Roundtrips erhalten bleibt.

Griessli
Irene
 
Ich meine den Code ganz unten:



<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTIyODM3NTczMw9kFgZmDxYCHgRUZXh0BT48IURPQ
1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPmQCAg9kFgwCAQ8WAh4HVmlzaWJsZWhk
AgIPFgIeB2NvbnRlbnQFLldlYnNpdGUgdm9uIFJpY2hhcmQgV2VnaWVyIHVuZCBHaXNlbGEgQWxiaXNzZXJkAgMPFgIfAgUeUmljaGFyZCBXZWdp
ZXIgR2lzZWxhIEFsYmlzc2VyZAIEDxYCHwIFNENvcHlyaWdodCAyMDA3IGJ5IFJpY2hhcmQgV2VnaWVyIGFuZCBHaXNlbGEgQWxiaXNzZXJkAgU
PFgIfAmRkAgYPFgIfAgUNd3d3LndlZ2llci5jaGQCBA9kFgICAQ9kFgICAw9kFgJmD2QWAgILDxYCHwFnFgICAQ9kFgZmDw8WAh8BaGRkAgIPDx
YCHwFoZBYCZg8PFgQeB0VuYWJsZWRoHwFoZGQCAw9kFgICAQ8PZBYCHglvbmtleWRvd24FY3JldHVybiBfX2Rubl9LZXlEb3duKCcxMycsICdqY
XZhc2NyaXB0Ol9fZ
 
Hallo Ronald,

Wie bereits erwähnt wurde, handelt es sich hierbei um den ViewState welcher von .Net generiert wird. Diesen kann man durch entsprechende Konfiguration unterdrücken, was dann aber zu unangenehmen Nebeneffekten führen kann, welche man programmiertechnisch abfangen muss.

Da die von dir oben verlinkte Seite von mir ist (weshalb interessiert dich meine Login-Seite?) kann ich dir gerne noch Fragen dazu beantworten, wenn du noch welche hast.

Die Seite ist übrigens mit DotNetNuke erstellt, da ich tagtäglich schon viel .Net programmiere und es angenehm fand sowas out-of-the-box zu verwenden ohne selbst codieren zu müssen
wink.gif


Grüessli,

Richi
 
Eine kleine Anmerkung dazu.

Man kann .NET auch gänzlich ohne serverseitige Objekte und ohne Viewstate betreiben, wie man an den Ausgabeseiten von Kunden sehen kann. Eigenes Beispiel: http://beispiel.server-daten.de/ und die Unterseiten.

Da besteht der Control Tree in der Trace-Ansicht lediglich aus einem einzigen Objekt __Page ohne Unterobjekte.

Oder man baut sich eigene Klassen, die von der Control-Klasse abgeleitet werden und die Html-Fragmente im Aufruf der Render-Methode ausgeben.

Beispiel http://www.server-daten.de/admin/

Da besteht der Control Tree zwar aus zehn Objekten. Außerdem existiert ein ViewState-Fragment. Das ist aber immer noch erheblich weniger als die tatsächlich in der Seite genutzten Objekte, würde man das klassisch mit ASP.NET programmieren.

Schließlich können auch Bilder, Dateien oder Emails abgelegt werden. Der Aufruf wird über NET abgefangen und ermöglicht bsp. weitere Sicherheitsüberprüfungen anhand der Anmeldeinformationen des Aufrufers.
 
Zurück
Oben