2010-03-08 5 views
8

Ich habe ein ASP.NET-Programm für einen Kunden geschrieben, ich möchte eine Nachricht ähnlich "Preview-Version, ABD Consulting" auf der Seite master.master hinzufügen, ich hatte gedacht, Response.write zu verwenden, aber es vermasselt das Aussehen der Seite, als es scheint, Seite elemets zu bewegen. Wenn ich ein Label verwende, kann der Kunde es aus der Master.master-Datei entfernen, irgendwelche Vorschläge? Der Kunde ist in einem anderen Land, also möchte ich sicherstellen, dass ich bezahlt werde.ASP.NET Wie kann ich eine Nachricht auf dem Bildschirm schreiben, ohne dass der Endbenutzer sie entfernt?

Vielen Dank

+0

Können Sie klarstellen, dass der Kunde die Quelle hat oder nicht? So können sie die Master-Datei bearbeiten? –

Antwort

5

Dienen Sie auf Ihrem eigenen Server. Wenn es sich um eine Vorschau handelt, sollten sie sowieso keinen Zugriff auf den Code haben.

0

Verschleißen Sie es in einer DLL und verwenden Sie den aktuellen Kontext, um ein hübsches div wie das zu schreiben, das StackOverflow.com oben verwendet.

+1

obwohl das mit einigen trivialen CSS und/oder JS vom Client entfernt werden konnte. –

3

Es gibt nichts, was Sie tun können, wenn Sie es nicht hosten oder den Webserver steuern, auf dem es ausgeführt wird. Nichts, was du im Code tust, ist wichtig, wenn sie schlau genug sind. Sie können ihre HTTP-Handler schreiben und alles ersetzen, was sie wollen.

1

Wenn Sie das Label während des OnPrenders oder Renderns der Seite programmatisch ausschreiben, kann der Client es nicht entfernen. Wenn Sie dann die ID, die dem Element zugewiesen wurde, zufällig anordnen, wird es für sie unglaublich schwierig, JavaScript-Funktionen oder CSS-Stile darauf anzuwenden, insbesondere wenn Sie die Stile direkt hinzufügen.

So etwas wie diese (Pseudocode):

HtmlGenericControl label = new HtmlGenericControl("div"); 
label.ID = Guid.NewGuid().ToString(); 
label.InnerText = "My copyright or ownership text"; 
label.Style.Add(HtmlTextWriterStyle.Height, "50px"); 
label.Style.Add(HtmlTextWriterStyle.Width, "100px"); 

, wenn Sie es dann absolut positionieren, sollte es zeigen immer. Beachten Sie, dass es nicht völlig unantastbar und narrensicher ist, aber Sie möchten es nur schwer genug machen, dass der Client nicht versucht, es zu entfernen.

+0

Außerdem sollten stark benennende und signierte Assemblys ausreichen, um unerschrockene Hackexpeditionen in die String-Konstanten der DLLs zu verhindern. –

+0

Wenn es an einem konsistenten Ort in der Quelle gerendert wird, wäre es jedoch ziemlich trivial, es über Javascript zu entfernen. Vielleicht das Tag, die Klasse, die ID und den Ort in der Quelle zufällig. –

0

Ich bin mit George und Rick - lass sie nicht die Quelle haben und serviere sie von einem Server, den du kontrollierst. Außerdem hatte ich ein Hintergrundbild mit der Aufschrift "Demo" erstellt. Dies wird daran erinnern, dass sie zahlen müssen.

Verwandte Themen