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 en les chiffrant ou en les signant.
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 transmises en texte clair.
- purposes
- String[]
Liste des objectifs des données. Si cette valeur est spécifiée, la même liste doit être passée à la Unprotect(Byte[], String[]) méthode pour déchiffrer le texte chiffré retourné.
Retours
Données de texte chiffré.
Exceptions
Le paramètre a la userData valeur Null.
Le tableau d’objectifs contient une ou plusieurs entrées d’espace blanc uniquement.
Remarques
Cette méthode remplace la Encode méthode, qui exige 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 le nourrir comme entrée dans la méthode d’un Unprotect autre sous-système, ce qui peut compromettre la sécurité des 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 les 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 valeur 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 .