Telerik AJAX 无法上传文件
Telerik AJAX can not uplaod files
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
说明
在 R1 2020 中,默认启用自定义元数据 classes(上传配置)白名单 - 白名单自定义元数据类型。如果您的应用程序使用此类配置,则需要将它们添加到 web.config.
中的 Telerik.Upload.AllowedCustomMetaDataTypes 键
您需要添加 class 的完全限定名称,否则您将得到 The cryptographic operation has failed!尝试上传时出错。
web.config
<appSettings>
<add key="Telerik.Upload.AllowedCustomMetaDataTypes" value="SomeNameSpace.SampleAsyncUploadConfiguration;SomeOtherNameSpace.OtherAsyncUploadConfiguration" />
</appSettings>
其他错误原因
如果添加 AllowedCustomMetaDataTypes 密钥或不使用自定义配置文件无法修复错误,请确保您已设置必要的加密密钥:
配置加密密钥
配置哈希键
Telerik.Web.UI.DialogParametersEncryptionKey,如果使用 RadEditor 对话框
解决方案
解决方案是将所有自定义配置 classes 添加到 Telerik.Upload.AllowedCustomMetaDataTypes 键中,以分号 ; 分隔。要找出完全限定的名称,您可以使用以下在标签中列出项目的方法。
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];
}
为方便起见,您可以从下面的 link 下载实施建议方法的 AsyncUploadGetCustomMetaDataTypes 示例项目。要使其可运行,请将 Telerik.Web.UI.dll 程序集放在项目的 bin 文件夹中。
AsyncUploadGetCustomMetaDataTypes.zip。
在该项目中,您会发现两个页面有两个不同的自定义处理程序。如您所见,没有自定义配置的自定义处理程序不需要向 Telerik.Upload.AllowedCustomMetaDataTypes 键添加任何内容。
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
说明 在 R1 2020 中,默认启用自定义元数据 classes(上传配置)白名单 - 白名单自定义元数据类型。如果您的应用程序使用此类配置,则需要将它们添加到 web.config.
中的 Telerik.Upload.AllowedCustomMetaDataTypes 键您需要添加 class 的完全限定名称,否则您将得到 The cryptographic operation has failed!尝试上传时出错。
web.config
<appSettings>
<add key="Telerik.Upload.AllowedCustomMetaDataTypes" value="SomeNameSpace.SampleAsyncUploadConfiguration;SomeOtherNameSpace.OtherAsyncUploadConfiguration" />
</appSettings>
其他错误原因 如果添加 AllowedCustomMetaDataTypes 密钥或不使用自定义配置文件无法修复错误,请确保您已设置必要的加密密钥:
配置加密密钥 配置哈希键 Telerik.Web.UI.DialogParametersEncryptionKey,如果使用 RadEditor 对话框
解决方案 解决方案是将所有自定义配置 classes 添加到 Telerik.Upload.AllowedCustomMetaDataTypes 键中,以分号 ; 分隔。要找出完全限定的名称,您可以使用以下在标签中列出项目的方法。
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];
}
为方便起见,您可以从下面的 link 下载实施建议方法的 AsyncUploadGetCustomMetaDataTypes 示例项目。要使其可运行,请将 Telerik.Web.UI.dll 程序集放在项目的 bin 文件夹中。
AsyncUploadGetCustomMetaDataTypes.zip。 在该项目中,您会发现两个页面有两个不同的自定义处理程序。如您所见,没有自定义配置的自定义处理程序不需要向 Telerik.Upload.AllowedCustomMetaDataTypes 键添加任何内容。