Azureには、プロダクション版とプロダクション版の2つのWebアプリケーションが配置されています。ある時点で.Net CryptographicException Azureの "Object already exists"
ウェブサイトは、以下のコードを使用して、RSAキーをホストするコンテナを作成します。
// -----------------------------
// Part 1 : Initialize csp params
// -----------------------------
const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "OurKeyContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
// --------------------------------------------------
// Part 2 : A try to set folder access rights to "everyone"
// --------------------------------------------------
// http://whowish-programming.blogspot.fr/2010/10/systemsecuritycryptographycryptographic.html
// http://stackoverflow.com/questions/5013881/c-sharp-how-do-i-get-the-everybody-user
var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
var rule = new CryptoKeyAccessRule(sid, CryptoKeyRights.FullControl, AccessControlType.Allow);
cspParams.CryptoKeySecurity = new CryptoKeySecurity();
cspParams.CryptoKeySecurity.SetAccessRule(rule);
return new RSACryptoServiceProvider(cspParams);
問題は、このコードは唯一のウェブサイトの一つ、最初に実際に発売された1のために働くということです。 2つ目はCryptographicException "Object already exists"を投げました。
グーグルでは、キーコンテナにアクセスできないWebサイトを実行しているユーザーが原因であるようですが、残念ながら推奨されている修正(上記のコード2で実装されています)は機能しません。
アイデアやアドバイスはありますか?
Riana
あなたのアイデンティティのための[RSA暗号化キーへの付与リードアクセス](https://msdn.microsoft.com/en-us/library/2w117ede.aspx#Y898)しようとしていますKUDU経由でWebアプリケーションに失敗しましたか? Aspnet_regiis.exeファイル[ここ](https://msdn.microsoft.com/en-us/library/k6h9cz8h.aspx)の場所が見つかりました。 –
こんにちはブルースとあなたの応答に感謝します。あなたが送ったURLを読みましたが、aspnet_regiisコマンドはAzureコンソールやKuduによって認識されません。 –
.NET Frameworkバージョン4(32ビットシステム)の場合は、DirをD:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319に変更し、.NET Frameworkバージョン4(64ビットシステム) KUDUを介してあなたのディレクトリを 'D:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319'に変更することができます。 –