Come creare chiavi tramite utilizzando Visual Basic .NET per l'utilizzo nell'autenticazione basata su form

Traduzione articoli Traduzione articoli
Identificativo articolo: 313091 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come creare le chiavi da utilizzare per la crittografia, decrittografia e convalida dei dati di cookie di autenticazione form. È possibile utilizzare i tasti creati in questo articolo per il validationKey e gli attributi di decryptionKey della sezione <machinekey> il<system.web> elemento nel file Machine.config e Web.config file.

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack è necessario:
  • Microsoft Windows 2000 o Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Services (IIS)

Creare il progetto

  1. Avviare Microsoft Visual Studio .NET.
  2. Scegliere Nuovo dal menu file , quindi progetto .
  3. Nell'area Tipi progetto , fare clic su Progetti di Visual Basic .
  4. Nell'area modelli , fare clic su Applicazione Console .
  5. Nella casella di testo nome digitare HashConfigVb e quindi fare clic su OK .

Scrivere il codice hash di una password

Il codice in questa sezione legge due argomenti che vengono passati dalla riga di comando:
  • Il primo argomento è il numero di byte viene utilizzato per creare l'attributo decryptionKey .
  • Il secondo argomento è il numero di byte viene utilizzato per creare l'attributo validationKey .
Il codice utilizza un generatore di numeri casuali per creare un numero casuale di byte sulla base degli argomenti della riga di comando. Dopo aver creati i byte casuali, i byte vengono formattati in una stringa esadecimale che è adatto per l'utilizzo nei file con estensione config.

Nota La stringa esadecimale creata è due volte la dimensione del valore che viene passato nella riga di comando. Ad esempio, se si specificano 24 byte per una chiave, la stringa risultante è 48 byte di lunghezza dopo la conversione. I valori validi per decryptionKey è 8 o 24. Questo crea una chiave a 16 byte per Data Encryption Standard (DES) o un 48 byte chiave Triple DES, rispettivamente. I valori validi per validationKey sono 20 a 64. Questo crea chiavi da 40 a 128 byte di lunghezza dopo la conversione. L'output dal codice è un intero <machinekey> elemento che è possibile copiare e incollare in un file Machine.config o in un file Web.config.

  1. Consente di aggiungere un nuovo file di classe denominato KeyCreator al progetto Visual Basic.
  2. Replace the existing code in the KeyCreator.vb file with the following code:
    Imports System
    Imports System.Text
    Imports System.Security.Cryptography
    
    Namespace Crypto
      Public Class KeyCreator
    	
        Public Shared Sub CreateMachineKey()
          Dim commandLineArgs As String()
          commandLineArgs = System.Environment.GetCommandLineArgs()
    
          Dim decryptionKey As String
          decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs(1)))
          Dim validationKey As String
          validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs(2)))
    
          Console.WriteLine("<machineKey validationKey=""{0}"" decryptionKey=""{1}"" validation=""SHA1""/>", _
          validationKey, decryptionKey)
         End Sub
    
         Public Shared Function CreateKey(numBytes As Integer) As String
           Dim rng As RNGCryptoServiceProvider = New RNGCryptoServiceProvider()
           Dim buff(numBytes -1) As Byte
    
           rng.GetBytes(buff)
    				
           Return BytesToHexString(buff)
         End Function
     
         Public Shared Function BytesToHexString(bytes As Byte()) As String
           Dim hexString As StringBuilder = New StringBuilder(64)
           Dim counter as Integer
    
           For counter = 0 To bytes.Length - 1
             hexString.Append(String.Format("{0:X2}", bytes(counter)))
           Next
    
           Return hexString.ToString()
        End Function
    
      End Class
    End Namespace
    					
  3. Aprire il file Module1.vb in base all'impostazione predefinita viene creato e aggiungere il codice riportato di seguito nella routine sub Main :
        Dim MyKeyCreator As New Crypto.KeyCreator()
        MyKeyCreator.CreateMachineKey()
    					
  4. Compilare l'applicazione.

Generare gli hash

Eseguire l'applicazione da un prompt dei comandi e quindi passare due valori integer della dimensione della decrittografia e le chiavi di convalida. Se l'applicazione di console HashConfigVb.exe è denominata, digitare la seguente sintassi al prompt dei comandi nella collocazione di directory dell'applicazione:
HashConfigVb.exe 24 64
L'applicazione deve restituire un output simile a quello riportato di seguito:
<machineKey validationKey="08CE6B478DCE73..........E566D8AC5D1C045BA60"
            decryptionKey="4252D6B2268.........67F451CE65D0F2ABE9BCD3A"
            validation="SHA1"/>
					
Nota Poiché il codice utilizza un generatore di numeri casuali, l'output è diverso ogni volta.

Aggiornare il file di configurazione

  1. Individuare il file Machine.config o Web.config file.
  2. Individuare la sezione di <system.web> nel file di configurazione.
  3. Sostituire la sezione di <machinekey> con l'output dall'applicazione console. Se la sezione <machinekey> non esiste, crearla.
  4. Salvare il file di configurazione.
  5. Riavviare IIS su tutti i server della farm Web rendere effettive le modifiche di Machine.config.

Risoluzione dei problemi

Assicurarsi che la sezione <machinekey> chiavi identiche, esplicite (ovvero, non utilizzare ilopzione AutoGenerate per gli attributi nella sezione <machinekey>) livello di farm Web nei seguenti scenari:
  • Quando si utilizza l'autenticazione basata su form.
  • Quando si esegue lo stato della sessione in modalità StateServer.
  • Quando si desidera che ViewState sia disponibile in una Web farm, perché l'attributo enableViewStateMAC è impostato su true per impostazione predefinita.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
308157Come implementare l'autenticazione basata su form nell'applicazione ASP.NET utilizzando Visual Basic .NET
306238Come implementare protezione basata sui ruoli con l'autenticazione basata su form in un'applicazione ASP.NET utilizzando Visual Basic .NET
306590INFORMAZIONI: Cenni preliminari sulla protezione ASP.NET
307626INFORMAZIONI: Cenni preliminari sulla configurazione di ASP.NET

Proprietà

Identificativo articolo: 313091 - Ultima modifica: lunedì 29 ottobre 2007 - Revisione: 3.10
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Chiavi: 
kbmt kbproductlink kbconfig kbhowtomaster kbsecurity kbstate KB313091 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 313091
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com