-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
Advanced Captcha in ASP.NET: Eine weitere Variante
05.04.07 - .NET, ASP.NET Beitrag von Norbert Eder
Advanced Captcha in ASP.NET
05.04.07 - .NET, ASP.NET Beitrag von Norbert Eder| | In der Diskussion Captcha-Ablösung wurde nach Möglichkeiten gesucht, herkömmliches Captcha abzulösen. Thomas Bandt löst dies durch eine einfache Rechenaufgabe, welche von den aktuellen Bots meist nicht gemeistert werden kann.
Ich habe auf Basis des CodeProject-Artikels CAPTCHA Image eine (zumindest für mich neue) Variante entwickelt. Sie funktioniert im Grunde wie die Lösung von Thomas, nur, dass die Zahlen per Image dargestellt werden. Zum Schluss sieht dies so aus:
Der Schwierigkeit kann hierbei noch erhöht werden, indem zwischen die Zahlen Buchstaben oder andere Zeichen eingefügt werden, die der intelligente Benutzer auslassen muss.
Wer sich dafür interessiert, kann das Projekt SampleCaptcha herunterladen.
| | | 3 Kommentare
- 2250 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
JavaScript Alert von CodeBehind-File aufrufen
10.02.07 - .NET, ASP.NET Beitrag von Norbert Eder| | In vielen Foren wird oft die Frage gestellt, wie denn aus beispielsweise C# heraus eine MessageBox im Web angezeigt werden kann.
Folgende Klasse zeigt die Verwendung:
public static class Alert
{
public static void Show(string message)
{
string repMessage = message.Replace("'", "'");
string script =
String.Format("<script language={0}>alert('{1}');</script>",
"JavaScript", repMessage);
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null
&&
!page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert", script);
}
}
}
Unsere Funktionalität kann nun von jeder beliebigen Stelle mit
Alert.Show("Dies ist ein Test");
aufgerufen werden.
| | | 5 Kommentare
- 3424 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
ASP.NET AJAX Linksammlung
28.01.07 - .NET, ASP.NET Beitrag von Norbert Eder
HTML Seiten mit ASP.NET Cachen
18.01.07 - .NET, ASP.NET Beitrag von Norbert Eder| | Bei großem Useraufkommen und/oder auf Seiten die nicht immer 100%ig aktuell sein müssen, bietet es sich an, diese Seiten zu cachen. Dies bedeutet, dass die jeweilige Seite nicht bei jedem Aufruf neu gerendet werden muss.
Hier nun ein einfaches Beispiel für das Cachen von ASP.NET Pages. Die Ausgangslage bietet folgende Seite:
< %@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" % >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Cache Demo</title>
</head>
<body>
Uhrzeit: <% = DateTime.Now.ToLongTimeString() %>
</body>
</html>
Wird diese Seite gestartet und mehrmals durch Reloadaktualisiert ist schön zu sehen, dass stets die aktuelle Uhrzeit angezeigt wird.
Mit der Output-Direktive kann nun ein einfaches Caching aktiviert werden. Der Aufbau der Direktive sieht wie folgt aus:
<%@ OutputCache Duration="10" VaryByParam=None %>
Hier nun das gesamte Beispiel:
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default"%>
<%@ OutputCache Duration="10" VaryByParam=None %>
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Cache Demo</title>
<</head>
<body>
Uhrzeit: <% = DateTime.Now.ToLongTimeString() %>
</body>
</html>
Bei einer Ausführung dieser Seite und dem Betätigen von Reload ist schön zu sehen, dass der Seiteninhalt ca. alle 10 Sekunden aktualisiert wird.
| | | 3 Kommentare
- 749 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Es muss nicht immer AJAX sein ...
14.01.07 - Entwicklung, Diskussionen, .NET, Grundlagen, ASP.NET Beitrag von Norbert Eder| | Wer AJAX nicht einsetzt ist doof. Hört man zumindest Vögel zwitschern. Aber es gibt auch andere Möglichkeiten.
Für viele Dinge ist es zudem auch gar nicht nötig, AJAX einzusetzen, da simple JavaScripts durchaus ausreichen. So ist vor dem Einsatz von AJAX darüber nachzudenken, welcher Zweck erfüllt werden soll und ob es nicht andere - einfachere - Lösungen gibt.
Wer zudem fit in C++ ist, hat die Möglichkeit auf binary HTML Components [1] zu setzen. Zugegeben, schon recht alt, aber funktioniert sehr flott - und ein riesiges Framework ist auch nicht notwendig.
Implementing Binary DHTML Behaviours
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Visual Studio 2005: Default Browser setzen
06.11.06 - Base Framework, ASP.NET, Visual Studio Beitrag von Norbert Eder| | Ich hab es schon irgendwann einmal irgendwo gepostet, aber jetzt auf die Schnelle nicht gefunden, daher an dieser Stelle, damit ich es selbst nicht schon wieder vergesse.
Visual Studio 2005 öffnet gerne den Default-Browser für's Debuggen und das muss natürlich nicht immer der Internet Explorer sein (oder man möchte explizit einen anderen Browser wählen). Dazu sind folgende Schritte notwendig.
Debugging stoppen, eine ASPX-Datei des Web-Projektes öffnen. Danach auf File/Browse With ... dadurch erscheint der folgende Dialog:
Hier nun den gewünschten Browser auswählen, als Default setzen und auf Browse klicken. Ab sofort wird dieser Browser für die Debugging-Sessions verwendet.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Ein Ajax basierender Workflow Designer
23.10.06 - .NET, ASP.NET Beitrag von Norbert Eder
Kennst du Atlas?
17.10.06 - ASP.NET Beitrag von Norbert Eder
WebRequest und SSL Zertifikate
21.08.06 - ASP.NET Beitrag von Norbert Eder| | Muss man via .NET auf Webseiten zugreifen, die per SSL gesichert sind, kommt es hin und wieder zu Problemen, wenn die Zertifikate nicht verifiziert werden können. Diesem Problem kann man aus dem Weg gehen. Dazu einfach die folgende Klasse implementieren:
public class TrustAllCertificatePolicy
: System.Net.ICertificatePolicy
{
public TrustAllCertificatePolicy()
{}
public bool CheckValidationResult(ServicePoint sp,
X509Certificate cert,WebRequest req, int problem)
{
return true;
}
}
Danach ist die Policy nur mehr zu aktivieren. Dies kann folgendermaßen erreicht werden:
System.Net.ServicePointManager.CertificatePolicy =
new TrustAllCertificatePolicy();
Und schon sollte der Zugriff auf diese Webseiten funktionieren.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|