Telerik AJAX не может загружать файлы - PullRequest
0 голосов
/ 16 июня 2020

После обновления Telerik от Telerik AJAX Manager v2015.1.401.45 до Telerik AJAX Manager v2020.2.512.45 не может загружать файлы. Всегда ошибка типа:

[CryptographicException: The cryptographic operation has failed!]
   Telerik.Web.UI.CryptoExceptionThrower.ThrowGenericCryptoException() +46
   Telerik.Web.UI.CryptoExceptionThrower.ThrowIfFails(Func`1 function) +46
   Telerik.Web.UI.CryptoService.CheckWhitelistTypes(Type type, String allowedCustomMetaTypes, String uploadMetaDataFullName) +116
   Telerik.Web.UI.AsyncUploadHandler.GetConfiguration(String rawData) +163
   Telerik.Web.UI.AsyncUploadHandler.EnsureSetup() +148
   Telerik.Web.UI.AsyncUploadHandler.ProcessRequest(HttpContext context) +140
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +195
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +50
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +73

1 Ответ

1 голос
/ 17 июня 2020

Ошибка задокументирована в документации продукта https://docs.telerik.com/devtools/aspnet-ajax/knowledge-base/asyncupload-the-cryptographic-operation-has-failed-error-after-upgrade.

Описание В R1 2020 белый список классов пользовательских метаданных (конфигураций загрузки) включен по умолчанию - Белый список типов пользовательских метаданных. Если ваше приложение использует такие конфигурации, вам нужно будет добавить их в ключ Telerik.Upload.AllowedCustomMetaDataTypes в web.config.

Вам необходимо добавить полное имя класса, иначе вы получите Операция cryptographi c завершилась неудачно! ошибка при попытке загрузки.

web.config

<appSettings>
    <add key="Telerik.Upload.AllowedCustomMetaDataTypes" value="SomeNameSpace.SampleAsyncUploadConfiguration;SomeOtherNameSpace.OtherAsyncUploadConfiguration" />
</appSettings>

Другие причины ошибки Если добавление ключа AllowedCustomMetaDataTypes или неиспользование пользовательских файлов конфигурации не устраняет ошибку, убедитесь, что у вас есть установите необходимые ключи шифрования:

ConfigurationEncryptionKey ConfigurationHashKey Telerik.Web.UI.DialogParametersEncryptionKey, при использовании диалогов RadEditor

Решение Решение состоит в том, чтобы добавить все настраиваемые классы конфигурации в Telerik.Upload.pesAllowedCustomMeta ключ, разделенный точкой с запятой;. Чтобы узнать полные имена, вы можете использовать следующий подход, который перечисляет элементы на этикетке.

ASP. NET

<asp:Label Text="Label1" ID="Label1" runat="server" />

C#

protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text = typeof(MySampleAsyncUploadConfiguration).AssemblyQualifiedName.Split(',')[0];
}

Для удобства вы можете загрузить образец проекта AsyncUploadGetCustomMetaDataTypes, реализующий предложенный подход, по ссылке ниже. Чтобы сделать его работоспособным, поместите сборку Telerik.Web.UI.dll в папку bin проекта.

AsyncUploadGetCustomMetaDataTypes.zip. В проекте вы найдете две страницы с двумя разными пользовательскими обработчиками. Как видите, настраиваемый обработчик, не имеющий настраиваемой конфигурации, не нуждается в добавлении чего-либо к ключу Telerik.Upload.AllowedCustomMetaDataTypes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...