martedì 27 maggio 2008
Validatore GUID
Public Function IsGUID(ByVal guid As String) As Boolean
Dim rtn As Boolean = False
If Not String.IsNullOrEmpty(guid) Then
Dim guidRegEx As Regex = New Regex("^(\{{0,1}" & _
"([0-9a-fA-F]){8}-([0-9a-fA-F])" & _
"{4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-" & _
"([0-9a-fA-F]){12}\}{0,1})$")
rtn = guidRegEx.IsMatch(guid)
Else
rtn = False
End If
Return rtn
End Function
Tag OOXML Word 2007
Salvare un testo in word è abbastanza semplice, farlo in word 2007 (.docx) è un po' diverso (alla fine è xml) ma comunque semplice. Dare una formattazione migliore, però, può risultare un po' piu complesso perchè non è sempre semplice trovare i "tag" di formattazione corretti. Per questo motivo ne riporto alcuni qui sotto, con il loro corrispettivo.
<p>testo</p>
<w:p><w:r><w:t>TESTO</w:t></w:r></w:p>
<br />TESTO
</w:t></w:r><w:br /><w:r><w:t>TESTO
Grassetto
<w:r><w:rPr><w:b /></rPr>TESTO</w:r>
Sottolineato
<w:r><w:rPr><w:u w:val="single"/></rPr>TESTO</w:r>
Corsivo
<w:r><w:rPr><w:i /></rPr>TESTO</w:r>
Colori
<w:r><w:rPr><w:color w:val="FF0000" /></rPr>TESTO</w:r>
domenica 18 maggio 2008
Sbloccare file bloccati su Team Foundation Server
Per poter sbloccare i file bloccati da altri utenti:
1. Posizionarsi dal prompt dei comandi nella cartella C:\Programmi\Microsoft Visual Studio 8\Common7\IDE del server TFS
2. Digitare il comando:
“tf lock $/NomeProgetto/NomeDelFileDaSbloccare /lock:none /workspace:AreaDiLavoroCHeBlocca;UtenteCheBlocca /server:NomeDelServerTFS”
4. Digitare il comando:
“tf undo $/NomeProgetto/NomeDelFileDaSbloccare /workspace:AreaDiLavoroCHeBlocca;UtenteCheBlocca /server:NomeDelServerTFS”
venerdì 16 maggio 2008
Ajax - Animazione FadeIn e FadeOut
Ad esempio, supponiamo di voler fare in modo che, spostando il mouse sopra un bottone si visualizzi un "tooltip" personalizzato e che sparisca spostandolo via dal bottone. Questi sono i tag e le proprietà per applicare al tooltip i classici effetti di fadeIn e fadeOut, della durata di 0.5 secondi ad un framerate di 20fps:
<cc1:AnimationExtender ID="AnimationExtender1" runat="server"
TargetControlID="ImageButton1">
<Animations>
<OnMouseOver>
<sequence>
<StyleAction AnimationTarget="info"
Attribute="display" Value="block"/>
<FadeIn AnimationTarget="info" Duration=".5"
Fps="20" />
</sequence>
</OnMouseOver>
<OnMouseOut>
<sequence>
<FadeOut AnimationTarget="info" Duration=".5"
Fps="20" />
<StyleAction AnimationTarget="info"
Attribute="display" Value="none"/>
</sequence>
</OnMouseOut>
</Animations>
</cc1:AnimationExtender>
info è un div che contiente il nostro tooltip. Deve essere costruito in questo modo:
<div id="info" style="display: none; z-index: 2; opacity: 0;">
giovedì 15 maggio 2008
OpenVPN su PFSense: Site to Site
Ufficio1 LAN: 192.168.0.0/24
Ufficio2 LAN: 192.168.1.0/24
Bisognerà configurare un ufficio come server e l’altro come client
Configuriamo l’Ufficio1 come server.
Utilizzare il protocollo TCP e, se sono stati configurati altri tunnel VPN, usare una porta diversa da quelle utilizzate (nell’esempio è stata utilizzata la 1193). Ovviamente bisognerà creare una regola sul firewall che permetta le connessioni dalla WAN su questa porta. (vedi post precedente sulla Vpn per client remoti)
Configurazione Ufficio2
Configuriamo l’ufficio2 come client.
Utilizzare “TCP” come protocollo.
“Remote network” è l’indirizzo IP della LAN dell’Ufficio1.
OpenVPN su PFSense: Client remoti
Questo step non è necessario se si vuole configurare una Vpn Site-to-site
Creazione dei certificate su Unix/Linux
Per prima cosa si devono scaricare i sorgenti di OpenVPN da:
Si possono scaricare anche direttamente, usando “fetch” or “wget” se non si vuole/può utilizzare l’interfaccia grafica.
Scaricati i sorgenti, bisogna scompattarli con il comando “tar -xvzf openvpn-*.tar.gz” e poi posizionarsi nella cartella “easy-rsa”.
export KEY_PROVINCE=FVG
export KEY_CITY=TRIESTE
export KEY_ORG="Nome Organizzazione"
export KEY_EMAIL="me@myhost.mydomain"
Editate queste informazioni, bisogna eseguire alcuni scripts. Quando verrà richiesto di inserire il “Common Name”, inserire l’hostname del server pfsense (si trova in “General Setup” della configurazione del pfsense).
[/path/easy-rsa]# source ./vars
[/path/easy-rsa]# ./clean-all
[/path/easy-rsa]# ./build-ca
Country Name (2 letter code) [IT]: (premere invio)
State or Province Name (full name) [FVG]: (premere invio)
Locality Name (eg, city) [TRIESTE]): (premere invio)
Organization Name (eg, company) [Nome Ogranizzazione]: (premere invio)
Organizational Unit Name (eg, section) [ ]:( premere invio o inserire la unit name)
Common Name (eg, your name or your server's hostname) [ ]:HostnamePFSENSE
Email Address [me@myhost.mydomain]: (premere invio)
Poi si devono generare i parametri DH:
[/path /easy-rsa]# ./build-dh
[/path /easy-rsa]# ./build-key client3
Si possono creare quanti certificati client si vogliono. Se si deve successivamente creare un certificato client nuovo, basta farlo con ./build-key client_name. È tassativo usare sempre un nome diverso per ogni certificato. I certificati vanno creati tutti nella stessa cartella, altrimenti non funzioneranno (eventualmente fare il backup della cartella dei certificati, in modo da poterne generare altri senza dover rifare e reinstallare i certificati server).
Per generare i certificati su macchine windows si possono utilizzare diversi programmi, ma quello piu semplice ed immediato è “My Certificate Wizard” (http://www.openvpn.se/mycert/)
Generare il certificato della Certificate Authority (CA) e la sua chiave
Aprire un prompt di dos e posizionarsi in \Program Files\OpenVPN\easyrsa.
Eseguire il seguente filebatch file per copiare i file di configurazione (il comando sovrascriverà i file vars.bat e openssl.cnf eventualmente presenti nella cartella):
export KEY_COUNTRY=IT
export KEY_PROVINCE=FVG
export KEY_CITY=TRIESTE
export KEY_ORG="Nome Organizzazione"
export KEY_EMAIL="me@myhost.mydomain"
Poi, inizializzare il PKI con i comandi:
clean-all
build-ca
Generating a 1024 bit RSA private key
............++++++
............++++++
writing new private key to 'ca.key'
Nel Common Name inserire un valore che richiami il fatto che quello che si sta generando è il certificato per la certificate autorità (ad esempio OpenVPN-CA)
Per la generazione del certificato server utilizzare il seguente comando, sempre dal prompt:
"Sign the certificate? [y/n]" per firmare il certificato e
"1 out of 1 certificate requests certified, commit? [y/n]" per avviare la generazione
Generare i certificati per i client è molto simile al passaggio precedente, solamente si usa un altro comando:
build-key client2
build-key client3
Per il server OpenVPN devono essere anche generati i parametri Diffie Hellman (DH).
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
A questo punto abbiamo generato tutti i file necessari e si trovano tutti nella stessa cartella.
IMPOSTARE LA VPN PER I CLIENT REMOTI
Creati i certificati, è possibile configurare OpenVPN per la connessione dei client. Ciccare sul menu VPN à OpenVPN e poi sulla piccola icona “+” del tab “Server” per aggiungere una nuova connessione VPN server.
Come si può vedere, è impostato come protocollo “TCP”, questo perché è noto che UDP può aver problemi con alcuni router. Il TCP è leggermente più lento, ma per il momento è l’unico che assicura il 100% di compatibilità.
-----BEGIN CERTIFICATE-----
&
-----END CERTIFICATE----
Dopo aver copiato i certificati e le chiavi, disattivare “LZO-Compression” (eventualmente sarà possibile riabilitarla una volta verificato il funzionamento della VPN). Alla fine cliccare su “SAVE”.
Regole sul firewall
Per fare in modo che i client si connettano al server OpenVPN, bisogna creare una regola che permetta alle connessioni in entrata sull’interfaccia WAN di accedere alla porta 1194 (o quella impostata per
Scegliere il menu “Firewall > Rules”, cliccare sul tab “WAN” e infine sulla piccola icona “+” per aggiungere una nuova regola.
“Destination port range” è la porta in ascolto del server OpenVPN, di default la 1194.
Cliccando su “Save” le modifiche verranno salvate.
CONFIGURAZIONE DEI CLIENT
port 1194
dev tun
proto tcp-client
remote IpPubblicoDiConnessione 1194
ping 10
persist-tun
persist-key
tls-client
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
#comp-lzo
pull
verb 4
Inoltre è necessario copiare i certificati generati precedentemente nella stessa cartella del file appena creato. I file da copiare sono il certificato della Certificate Autority (CA), il certificato del client e la sua chiave. (Ad esempio “ca.crt”, “client1.crt” e “client1.key”).
Il procedimento è finito. Per poter urilizzare la VPN basterà cliccare con il tasto destro sul file ovpn e scegliere la voce "Start OpenVPN with this file".