System.PlatformNotSupportedException AesCryptoServiceProvider - PullRequest
3 голосов
/ 24 августа 2009

У меня следующая проблема.

Я создал класс, который использует AesCryptoServiceProvider для шифрования и дешифрования некоторых данных. Я использую класс в SharePoint WebPart, и все работает отлично. Я также использую тот же класс в том же веб-приложении в пользовательском веб-сервисе SharePoint, и каждый раз, когда вызывается конструктор System.Security.Cryptography.AesCryptoServiceProvider, он вызывает исключение System.PlatformNotSupportedException со следующей трассировкой стека.

System.PlatformNotSupportedException: The specified cryptographic algorithm is not supported on this platform.
   at System.Security.Cryptography.CapiNative.AcquireCsp(String keyContainer, String providerName, ProviderType providerType, CryptAcquireContextFlags flags, Boolean throwPlatformException)
   at System.Security.Cryptography.AesCryptoServiceProvider..ctor()
   at m2009_wu.ProvisioningLibrary.ConfigManager..ctor()

Я пытался скомпилировать веб-сервис и библиотеку с классом для разных платформ без каких-либо изменений.

Система, в которой работает моя среда разработки, - это Windows Server 2008 Standard SP1 x64 с Microsoft Office SharePoint Server 2007 SP2 x64 и Visual Studio 2008 SP1. .Net Framework 3.5 SP1 установлен на сервере.

Я был бы рад, если бы кто-нибудь мог указать мне правильное направление.

С уважением Рене Виндеггер

Ответы [ 4 ]

0 голосов
/ 28 августа 2009

Я отключил веб-службу ASP.Net и ввел службу WCF, и теперь все работает нормально.

0 голосов
/ 26 августа 2009

Ваше исключение гласит:

Указанный криптографический алгоритм не поддерживается на этой платформе

Вам нужно попробовать другой криптопровайдер. Не все криптопоставщики доступны во всех системах. MSDN имеет полный список из них.

0 голосов
/ 26 августа 2009

Где находится ваш сервер? Microsoft не разрешает использовать криптостойкие ключи в определенных регионах мира (Китай, Северная Корея и др.)

Кроме того, существуют параметры групповой политики, которые могут быть применены для предотвращения использования определенных криптозащитных (например, государственное агентство обязывает, что только групповые алгоритмы разрешены через групповую политику).

0 голосов
/ 24 августа 2009

Из MSDN:

PlatformNotSupportedException - Для текущей платформы не поддерживается размер ключа. [ссылка]

Какой размер ключа вы используете?

Минимальный размер ключа составляет 128 бит, а максимальный размер - 256 бит. [ссылка]

...