2016-11-30 12 views
0

私はASP.NET MVCを初めて使用しています。私は、ASP.NET MVCで暗号化されたAntiForgeryTokenのための有効な文字のユニークなセットがあるかどうかを知りたいです。私はそれを読むときにキーを検証する必要があります。 web.configにmachineKeyを指定しました。AntiForgeryトークンの有効な文字__RequestVerificationToken

ありがとうございます。トークンの検証に関する提案があれば感謝します。

答えて

3

あなたがantiforgeryトークンをシリアル化するために使用されているProtect方法でしょうMachineKey45CryptoSystemクラスのぞく:あなたがより深く行くとき

public string Protect(byte[] data) 
{ 
    return HttpServerUtility.UrlTokenEncode(MachineKey.Protect(data, MachineKey45CryptoSystem._purposes)); 
} 

、あなたがHttpEncoder方法を見つけるだろうし。

インサイド
internal string UrlTokenEncode(byte[] input) { 
.... 
} 

をその体:

base64Str = Convert.ToBase64String(input); 

要約するとD

// Step 3: Copy in the other chars. Transform the "+" to "-", and "/" to "_" 
for (int iter = 0; iter < endPos; iter++) { 
    char c = base64Str[iter]; 

    switch (c) { 
     case '+': 
      base64Chars[iter] = '-'; 
      break; 

     case '/': 
      base64Chars[iter] = '_'; 
      break; 

     case '=': 
      Debug.Assert(false); 
      base64Chars[iter] = c; 
      break; 

     default: 
      base64Chars[iter] = c; 
      break; 
    } 
} 

- 有効な文字は以下のとおりです。文字、数字、-_

+0

お返事ありがとうございます。トークンに '!'、 '〜'、 '*'、 '#'のような文字が存在しないことをどうやって保証できますか?これはisコードでは処理されていないためです。 –

+0

Convert.ToBase64Stringはそれを保証します。 64基本符号化文字列の仕様を参照してください。 – pwas

関連する問題