2012-04-02 5 views
1

Ich unterrichte mich .NET C# durch Bücher und selbst zugewiesene Projekte zum Spaß. Ich dachte, es könnte eine gute Erfahrung sein, zu versuchen, meine eigene Bild-Klick-Captcha-Steuerung von Grund auf neu zu erstellen. Die Art, in der Sie "das richtige Bild" aus ein paar Optionen identifizieren und klicken Sie auf die richtige (die Katze oder etwas), um sich als Mensch zu identifizieren.Schützen von Bilddateinamen für ein benutzerdefiniertes Bild klicken CAPTCHA

Als ich versuchte, über die Möglichkeiten nachzudenken, wie ein Skript in der von mir erzeugten Form zurechtkommen könnte, dachte ich über die Möglichkeit nach, einfach die richtigen Antworten zu erhalten und die Dateinamen der einzelnen Bilder zu speichern. Irgendwann würde es lernen, welche Dateinamen die "richtigen" waren

Ich kann mir keine Möglichkeit vorstellen, einen Bilddateinamen aus einem Browser oder Quellcode wirklich zu verstecken, aber das Umbenennen jedes Dateinamens ist auch nicht praktisch . Gibt es eine Möglichkeit, wie ich die Bilder in einer Art benutzerdefiniertem MIME-Typ "rendern" könnte (ist das die richtige Frage? Ich bin neu Entschuldigung) jedes Mal, wenn sie angefordert werden, anstatt nur IMG SRC's zu werfen?

Das könnte einfach unmöglich sein, aber ich dachte, ich würde versuchen, die Experten zu fragen. Vielen Dank für Ihre Zeit!

+0

http://stackoverflow.com/faq –

+0

versuchen hier: http: //www.aspsnippets.com/Articles/How-to-implement-Captcha-in-ASP.Net.aspx –

+0

Ihnen danken i – korben

Antwort

1

Was Sie tun, ist ein Proxy für die Bilder zur Verfügung stellen:

<img src="imageServer.aspx?id=12345" /> 

Was Sie tun an Ihrem Ende senden Sie den MIME-Header, dann streamen Sie die Datei. Auf diese Weise gibt es keine direkte Beziehung zwischen dem Bild, das bedient wird, und einem bestimmten Dateinamen.

+0

das klingt faszinierend und wie eine gute Option, gibt es irgendwelche Links, die Sie mir zur Verfügung stellen könnten, um mich auf den Weg zu schicken, dies zu lernen? Ich weiß nichts zu diesem Zeitpunkt auf MIME-Header, Streaming-Dateien, etc. Auch einige Google Suchbegriffe vorschlagen würde mir auf meinem Weg (jenseits der offensichtlichen aus Ihrem Beitrag) helfen - danke für Ihre Eingabe – korben

+0

Es gibt eine Antwort hier auf der Website irgendwo. Ich versuche es zu finden. –

+0

Hier gehts: http://stackoverflow.com/questions/4684673/show-images-from-outside-of-asp-net-application –

1

Sie können Bitmap-Klasse aus dem geladenen Bild erstellen und speichern Sie das Bild, verwendet Bitmap zu erzeugen irgendwo Benutzereingaben zu validieren

+0

so im Grunde jedes neue root für die captcha verwenden ein paar neue bilder? Mir geht es gut, wenn Sie es sind, aber ich kann nicht für irgendwelche Lastfolgen mit diesem Szenario sprechen. Ich tue gerne so, als würde ich für eine große Website (die ein Gehalt auszahlen kann) bauen, wenn ich an Dingen arbeite, also versuche ich nicht zu lernen, Dinge zu tun, die nur einen Entwickler unterstützen können. – korben

1

ich einen generischen Handler (* .ashx) für diesen Einsatz empfehlen. Viel weniger Aufwand und eine sauberere Möglichkeit, ein Bild zu laden, das eine ASPX-Seite aufruft.

Ich habe unzählige Male für Bildzwecke generische Handler verwendet. Zum Beispiel können Sie serverseitige Größenanpassung bereitstellen. Ein anderes cooles Feature wäre der Zugriff auf Sitzungswerte wie "Zeige nur das Bild, wenn der Benutzer angemeldet ist"

Blick auf http://www.codeproject.com/Articles/34084/Generic-Image-Handler-Using-IHttpHandler könnte ein guter Anfang sein.

+0

ich danke Ihnen, ich werde das überprüfen – korben