MachineKey.Protect(Byte[], String[]) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Protège les données spécifiées par chiffrement ou signature.
public:
static cli::array <System::Byte> ^ Protect(cli::array <System::Byte> ^ userData, ... cli::array <System::String ^> ^ purposes);
public static byte[] Protect (byte[] userData, params string[] purposes);
static member Protect : byte[] * string[] -> byte[]
Public Shared Function Protect (userData As Byte(), ParamArray purposes As String()) As Byte()
Paramètres
- userData
- Byte[]
Données à protéger. Ces données sont passées en texte brut.
- purposes
- String[]
Liste des objectifs pour les données. Si cette valeur est spécifiée, la même liste doit être passée à la méthode Unprotect(Byte[], String[]) pour déchiffrer le texte chiffré retourné.
Retours
- Byte[]
Les données de texte chiffré.
Exceptions
Le paramètre userData
est null.
Le tableau des objectifs contient une ou plusieurs entrées composées uniquement d’espaces blancs.
Remarques
Cette méthode remplace la Encode méthode, qui nécessite que l’appelant spécifie si les données en texte clair doivent être chiffrées, signées ou les deux. La Protect méthode effectue l’opération appropriée et protège en toute sécurité les données. Les données de texte chiffré produites par cette méthode ne peuvent être déchiffrés que par la Unprotect méthode.
Le purposes
paramètre est une liste facultative de raisons qui peuvent verrouiller le texte chiffré à un objectif spécifique. Ce paramètre vous permet d’isoler les opérations de chiffrement effectuées par différents sous-systèmes au sein d’une application. Un client malveillant ne doit pas être en mesure d’obtenir le résultat de la méthode d’un sous-système et de Protect l’alimenter comme entrée dans la méthode d’un autre sous-système, ce qui peut compromettre la sécurité des Unprotect applications. Le purposes
paramètre permet de s’assurer que les données protégées ne peuvent être utilisées que par le composant qui l’a générée à l’origine. Les applications doivent s’assurer que chaque sous-système utilise une liste unique purposes
.
Par exemple, pour protéger ou annuler la protection d’un jeton d’authentification, vous pouvez appeler la méthode à l’aide de code comme dans l’exemple suivant :
MachineKey.Protect(..., "Authentication token");
MachineKey.Unprotect(..., "Authentication token");
MachineKey.Protect(..., "Authentication token")
MachineKey.Unprotect(..., "Authentication token")
Les applications peuvent générer dynamiquement le purposes
paramètre. Dans ce cas, préfixez les valeurs fournies par l’utilisateur avec une valeur fixe (par exemple, « +Username:
nom d’utilisateur) pour réduire le risque d’une entrée de création de client malveillante qui correspond à un jeton utilisé par une autre partie du système. Toutes les chaînes générées dynamiquement doivent se produire après des chaînes fixes. Par exemple, pour protéger ou annuler la protection d’un message privé lié à un utilisateur spécifique, utilisez du code comme dans l’exemple suivant :
MachineKey.Protect(..., "Private message", "Recipient: " + username);
MachineKey.Unprotect(..., "Private message", "Recipient: " + username);
MachineKey.Protect(..., "Private message", "Recipient: " + username)
MachineKey.Unprotect(..., "Private message", "Recipient: " + username)
Lorsque la Unprotect méthode est appelée, la valeur fournie pour le purposes
paramètre doit être la même que celle fournie à la Protect méthode. Sinon, l’opération échoue avec une CryptographicException exception.
Les paramètres de configuration requis pour l’option MachineKeyCompatibilityMode.Framework45 sont requis pour cette méthode même si la MachineKeySection.CompatibilityMode propriété n’est pas définie sur l’option Framework45 .