FileRevocationManager.GetStatusAsync(IStorageItem) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
从 2022 年 7 月开始,Microsoft 将弃用 Windows 信息保护 (WIP) 和支持 WIP 的 API。 Microsoft 将继续在受支持的 Windows 版本上支持 WIP。 新版本的 Windows 不包括 WIP 的新功能,并且将来的 Windows 版本将不受支持。 有关详细信息,请参阅宣布 Windows 信息保护停用。
对于数据保护需求,Microsoft 建议使用Microsoft Purview 信息保护和Microsoft Purview 数据丢失防护。 Purview 简化了配置设置,并提供一组高级功能。
注意
fileRevocationManager 在Windows 10后可能无法用于发布。 请改用 FileProtectionManager。
获取文件或文件夹的选择性擦除保护状态。
public:
static IAsyncOperation<FileProtectionStatus> ^ GetStatusAsync(IStorageItem ^ storageItem);
/// [Windows.Foundation.Metadata.Deprecated("FileRevocationManager might be unavailable after Windows 10. Instead, use FileProtectionManager.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Security.EnterpriseData.EnterpriseDataContract)]
/// [Windows.Foundation.Metadata.RemoteAsync]
static IAsyncOperation<FileProtectionStatus> GetStatusAsync(IStorageItem const& storageItem);
/// [Windows.Foundation.Metadata.RemoteAsync]
/// [Windows.Foundation.Metadata.Deprecated("FileRevocationManager might be unavailable after Windows 10. Instead, use FileProtectionManager.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Security.EnterpriseData.EnterpriseDataContract")]
static IAsyncOperation<FileProtectionStatus> GetStatusAsync(IStorageItem const& storageItem);
[Windows.Foundation.Metadata.Deprecated("FileRevocationManager might be unavailable after Windows 10. Instead, use FileProtectionManager.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Security.EnterpriseData.EnterpriseDataContract))]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FileProtectionStatus> GetStatusAsync(IStorageItem storageItem);
[Windows.Foundation.Metadata.RemoteAsync]
[Windows.Foundation.Metadata.Deprecated("FileRevocationManager might be unavailable after Windows 10. Instead, use FileProtectionManager.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Security.EnterpriseData.EnterpriseDataContract")]
public static IAsyncOperation<FileProtectionStatus> GetStatusAsync(IStorageItem storageItem);
function getStatusAsync(storageItem)
Public Shared Function GetStatusAsync (storageItem As IStorageItem) As IAsyncOperation(Of FileProtectionStatus)
参数
- storageItem
- IStorageItem
要获取其选择性擦除保护状态的文件或文件夹。
返回
检索 storageItem 的选择性擦除保护状态的异步操作。
- 属性
注解
可以使用 GetStatusAsync 方法确定文件或文件夹的选择性擦除保护状态。 这将告诉你文件是否受保护,文件是否受到计算机上的其他用户的保护,等等。 GetStatusAsync 方法的常见用途是确定何时应删除受保护的文件。 例如,当撤销受保护的文件时,尝试访问文件内容将导致“拒绝访问”异常。 遇到该异常时,可以使用 GetStatusAsync 方法确定文件是否已由选择性擦除撤销,然后删除该文件(如果已撤销),如以下示例所示。
ApplicationData appRootFolder = ApplicationData.Current;
string enterpriseIdentity = "example.com";
int AccessDeniedHResult = -2147024891; // Access Denied (0x80070005)
private async Task<IRandomAccessStream> GetFileContents(string filePath)
{
IRandomAccessStream stream = null;
StorageFile file = null;
try
{
file = await StorageFile.GetFileFromPathAsync(filePath);
stream = await file.OpenReadAsync();
}
catch (UnauthorizedAccessException e)
{
if (e.HResult == AccessDeniedHResult)
{
// Delete file if it has been revoked.
SelectiveWipeCleanup(file);
}
return null;
}
return stream;
}
// Delete items revoked by Selective Wipe.
private async void SelectiveWipeCleanup(StorageFile file)
{
var status = await Windows.Security.EnterpriseData.FileRevocationManager.GetStatusAsync(file);
if (status == Windows.Security.EnterpriseData.FileProtectionStatus.Revoked)
{
await file.DeleteAsync();
}
}