.NET Blog   ·   .NET Casts   ·   .NET GUI Foren   ·   .NET BlogBook   ·   WPF Blogger   ·   visual studio one   ·   ASP.NET professional

  • 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.
Download .NET Essentials Installer
Trickkiste

Advanced Captcha in ASP.NET: Eine weitere Variante

05.04.07 - .NET, ASP.NET
Beitrag von Norbert Eder
 So, hier habe ich noch eine Variante des bereits vorgestellten Captchas. Auch dafür sollte es aktuell noch keine entsprechenden Implementierungen in den diversen Bots geben.

Sieht dann so aus:


Captcha Sample 2 Download

  Kommentar hinzufügen   |  1 Trackbacks   |  Permalink  |  Trackback-URL


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
 Hier ein paar Links zum Thema ASP.NET AJAX:

ASP.NET AJAX Download
ASP.NET AJAX Online Dokumentation
ASP.NET AJAX Video Tutorials
AJAX Control Toolkit
AJAX Control Toolkit Demos

Weiters gibt es zu diesem Thema noch die ASP.NET 2.0 AJAX Futures January CTP. Hierfür muss jedoch müssen jedoch ASP.NET AJAX 1.0 installiert sein. In der Futures CTP befinden sich in Entwicklung befindliche Funktionalitäten.

Zu guter Letzt: Die AJAX Cheat Sheets - eine übersichtliche Darstellung der Klassen und Funktionen.

  Kommentar hinzufügen - 2 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


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
 Einfach mal kurz
http://www.masteringbiztalk.com/atlasworkflowdesigner/ angucken und staunen. Schon ein nettes Teil, kann man nichts dagegen sagen.
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Kennst du Atlas?

17.10.06 - ASP.NET
Beitrag von Norbert Eder
 Nein? Kein Problem.
Ja? Dann dürfte es interessant sein, dass Atlas ganz einfach unbenannt wurde - in ASP.NET AJAX. Nähere Informationen sind unter [1] zu finden.

[1] ASP.NET AJAX Website

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


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