Usare le classi del namespace System.Drawing per creare una immagine impostando il disegno direttamente dal codice.

<%@ Page Language=”VB” %>

<%@ Import Namespace=”System.IO” %>

<%@ Import Namespace=”System.Drawing” %>

<%@ Import Namespace=”System.Drawing.Imaging” %>

<%@ Import Namespace=”System.Drawing.Drawing2D” %>

<script runat=”server”>

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

‘Inizializzo lo stream in memoria

Dim MemStream As New MemoryStream()

‘Creo una nuova bitmap

Dim bitmap As New System.Drawing.Bitmap(200, 50, PixelFormat.Format32bppArgb)

Dim graphic As Graphics = Graphics.FromImage(bitmap)

Dim penna As New Pen(Color.FromArgb(0, 74, 115), 15)

Dim pennello As SolidBrush = New SolidBrush(Color.FromArgb(0, 74, 115))

‘Pulisco l’immagine e aggiungo l’antialias (anche per il testo)

graphic.Clear(Color.FromArgb(167, 187, 215, 255))

graphic.SmoothingMode = SmoothingMode.AntiAlias

graphic.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias

‘Disegno l’immagine

‘graphic.DrawLine(penna, 7, 80, 110, 80)

graphic.DrawString(“freeASP.it”, New Font(“verdana”, 24, FontStyle.Bold), pennello, New PointF(2, 3))

graphic.DrawString(“Risorse per sviluppatori”, New Font(“verdana”, 8, FontStyle.Bold), pennello, New PointF(10, 35))

Response.ContentType = “image/png”

‘Salvo nello stream l’immagine e poi la invio in output

bitmap.Save(MemStream, ImageFormat.Png)

MemStream.WriteTo(Response.OutputStream)

bitmap.Dispose()

End Sub

</script>

Questo codice permette di intercettare l’indirizzo IP dei visitatori del sito. Può tornare particolarmente utile per funzioni legate alla sicurezza dei Web Form


<%@ Page Language=”C#” Debug=”True” %>

<%@ import Namespace=”System.Net” %>

<script runat=”server”>

void Page_Load(Object sender, EventArgs e) {

myLabel.Text = ResolveIP(“127.0.0.1”);

}

private string ResolveIP(string strIP) {

//Ritorna l’host di provenienza dell’IP

try {

IPHostEntry ipEntry;

ipEntry = Dns.Resolve(strIP);

return ipEntry.HostName;

} catch(System.Net.Sockets.SocketException se) {

return “sconosciuto”;

}

}

</script>

<html>

<head></head>

<body>

<asp:Label id=”myLabel” runat=”server” />

</body>

</head>

Ecco come effettuare la gestione dei file sul server con C#. È veramente semplice:


<%@ Page Language=”C#” Debug=”true” %>

<%@ import Namespace=”System.IO” %>

<script runat=”server”>

void Page_Load(Object sender, EventArgs e) {

//Copio il file dalla root di C nella dir “prove” e sovrascrivo se già esistente

if (CopyFile(“c:/pippo.txt”, “c:/prove/pippo.txt”, true)) {

myLabel.Text += “File copiato”;

}

//Sposto il file

if (MoveFile(“c:/pippo.txt”, “c:/prove/pippo.txt”)) {

myLabel.Text += “File spostato”;

}

//Cancello il file

if (DeleteFile(“c:/pippo.txt”)) {

myLabel.Text += “File cancellato”;

}

}

private bool DeleteFile(string NomeFile) {

if (File.Exists(NomeFile)) {

File.Delete(NomeFile);

return true;

} else {

return false;

}

}

private bool MoveFile(string OldPathFile, string NewPathFile) {

if (File.Exists(OldPathFile) && File.Exists(NewPathFile)==false) {

File.Move(OldPathFile, NewPathFile);

return true;

} else {

return false;

}

}

bool CopyFile(string OldPathFile, string NewPathFile, bool FileOverWrite) {

if (File.Exists(OldPathFile)) {

File.Copy(OldPathFile, NewPathFile, FileOverWrite);

return true;

} else {

return false;

}

}

</script>

<html>

<head></head>

<body>

<asp:Label id=”myLabel” runat=”server” />

</body>

</html>

Grazie al seguente script, è possibile disegnare una scacchiera sfruttando la tecnologia vb.net.

<% @page language=”VB” %>

<script runat=”server”>

sub page_load(obj as object, e as eventargs)

dim strTavolo as string

strTavolo= chr(13) + chr(10)

strTavolo=strTavolo + ” <table width=””160″” border=””0″” cellspacing=””0″” cellpadding=””0″”>”

strTavolo= strTavolo + chr(13) + chr(10)

dim strFondo as string=””

dim intVolta as integer=1

dim ctInd as integer

dim ctInd2 as integer

for ctInd=1 to 8 step 1

if(intVolta=1) then

intVolta=2

strFondo=”#00FF99″

else

intVolta=1

strFondo=”#FF0000″

end if

strTavolo=strTavolo + chr(13) + chr(10)

strTavolo=strTavolo + ” <tr>”

strTavolo=strTavolo + chr(13) + chr(10)

for ctInd2= 1 to 8 step 1

strTavolo=strTavolo+” <td width=””20″” height=””20″” bgcolor=”””+strFondo+”””> </td>”

strTavolo=strTavolo + chr(13) + chr(10)

if(strFondo=”#00FF99″) then

strFondo=”#FF0000″

else

strFondo=”#00FF99″

end if

next ctInd2

strTavolo=strTavolo + ” </tr>”

strTavolo=strTavolo + chr(13) + chr(10)

next ctInd

strTavolo=strTavolo + ” </table>”

tavolo.text = strTavolo + chr(13) + chr(10)

end sub

</script>

<asp:label value=”” id=”tavolo” runat=”server”/>

I caratteri chr(13) + chr(10) servono per formattare in modo opportuno il codice prodotto in uscita

Grazie al seguente script, è possibile mostrare a video l’indirizzo IP del server su cui risiede il nostro sito web.

<%@ Page language=”vb”%>

<script runat=”server”>

Sub page_load( obj As object, e As EventArgs )

indirizzo.text=request.servervariables(“LOCAL_ADDR”)

End sub

</script>

<asp:label id=”indirizzo” value=”” runat=”server” />

Grazie al seguente script scritto in vb.net, è possibile ricavare il nome del server su cui si trova la pagina aspx.

<%@ page language=”vb”%>

<script runat=”server”>

Sub page_load(obj As object, e As EventArgs )

Dim strServer As string

strServer=request.serverVariables(“SERVER_NAME”)

server.text = “Nome del server: <b>”+ strServer+”</b>”

End sub

</script>

<asp:label id=”server” value=”” runat=”server” />

<%@ page language=”vb”%>

<script runat=”server”>

Sub page_load(obj As object, e As EventArgs )

Dim strPercorso As string

strPercorso=request.serverVariables(“PATH_INFO”)

percorso.text = “Percorso pagina: “+ strPercorso

End sub

</script>

<asp:label id=”percorso” value=”” runat=”server” />

Grazie al seguente codice vb.net è possibile effettuare un log-on veloce.

<%@ page language=”VB”%>

<script runat=”server”>

sub bt1Click(obj as object, e as eventargs)

dim strUser as string

strUser=userTxt.text

dim strCode as string

strCode=codeTxt.text

dim strAccesso as string

strAccesso = “”

if(strUser=”innouser”)AND(strCode=”innocode”) then

strAccesso=”Accesso consentito a: <b>”+strUser+”</b>”

else

strAccesso=”Accesso Negato.”

end if

lbl1.text=strAccesso

end sub

</script>

<html>

<head>

<title>Log-On Veloce</title>

</head>

<body>

<form runat=”server”>

username: <asp:textbox value=”” id=”userTxt” runat=”server” />

<br>

password: <asp:textbox textMode=”password” value=”” id=”codeTxt” runat=”server” />

<br>

<asp:button id=”bt1″ text=”Accedi” onClick=”bt1Click” runat=”server” />

<br>

<asp:label id=”lbl1″ value=”” runat=”server” />

</form>

</body>

</html>

Grazie al seguente script sfruttiamo i cookies per riconoscere un’utente precedentemente identificato nel sito web.

<%@ Page language=”vb” %>

<script runat=”server”>

Sub page_load( obj As object, e As eventargs)

On Error Resume Next

Dim strName

strName=request.cookies(“www.innovatel.it”)(“user”)

strName=trim(strName)

If strName<>”” then

identita.text= ” Grazie per esser tornato “+strName

else

identita.text= “Visitatore Anonimo – Effettuare logon”

end if

End sub

</script>

<asp:Label id=”identita” value=”” runat=”server” />

Grazie al seguente script, è possibile segnalare, tramite IsPostBack, se un form è stato compilato.

<%@ page language=”vb”%>

<script runat=”server”>

Sub page_load( obj As object, e As EventArgs )

If Not page.isPostBack then

elabora.text =”Compilare il modulo.”

End if

End sub

Sub invio_form( obj As object, e As EventArgs )

‘Qua bisogna inserire l’elaborazione del form

elabora.text = “Form Inviato ed elaborato. Grazie ” & myName.text

End sub

</script>

<html>

<body>

<form runat=”server”>

<table width=”470″ border=”0″ cellspacing=”0″ cellpadding=”0″>

<tr>

<td>Nome</td>

<td>

<asp:TextBox id=”myName” runat=”server” />

</td>

<td>

<asp:Button id=”invio” runat=”server” text=”Invia” onClick=”invio_form” />

</td>

</tr>

<tr>

<td colspan=”3″>

<asp:Label id=”elabora” value=”” runat=”server” />

</td>

</tr>

</table>

</form>

</body>

</html>