快速入门:列出模板 (C#)
本快速入门介绍如何使用 MIP 保护 SDK 列出可供用户使用的保护模板。
先决条件
如果尚未完成,请确保先完成以下先决条件,然后再继续:
- 首先完成快速入门:客户端应用程序初始化 - 保护 SDK (C#),构建一个入门级 Visual Studio 解决方案。 此“列出保护模板”快速入门依赖于上一个快速入门,用于正确创建入门解决方案。
- 可选:查看 RMS 模板概念。
添加逻辑以列出保护模板
使用保护引擎对象添加逻辑以列出可供用户使用的保护模板。
打开你在前文“快速入门 - 客户端应用程序初始化 - 保护 SDK (C#)”中创建的 Visual Studio 解决方案。
使用“解决方案资源管理器”,打开项目中包含
Main()
方法实现的 .cs 文件。 该文件默认与包含它的项目同名,该名称在项目创建期间指定。在
Main()
主体的末尾,在Main()
函数的应用程序关闭部分上方(你在上一个快速入门中离开的位置),插入以下代码:
// List protection templates using protectionEngine and display the list
var templates=protectionEngine.GetTemplates();
for(int i = 0; i < templates.Count; i++)
{
Console.WriteLine("{0}: {1}", i.ToString(), templates[i].Name + " : " + templates[i].Id);
}
Console.WriteLine("Press a key to continue...");
生成并测试应用
最后,生成和测试客户端应用程序。
使用 CTRL-SHIFT-B(生成解决方案)生成客户端应用程序。 如果没有生成错误,请使用 F5(启动调试)运行应用程序。
如果项目成功生成并运行,则应用程序可能在 SDK 每次调用
AcquireToken()
方法时都会提示通过 ADAL 进行身份验证。 如果缓存的凭据已存在,系统不会提示你登录并查看标签列表。身份验证后,控制台输出应显示经过身份验证的用户的保护模板,类似于以下示例:
0: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607
1: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990
2: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05
3: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720
Press a key to continue.
注意
复制并保存一个或多个保护模板的 ID(例如 bb7ed207-046a-4caf-9826-647cff56b990
),因为你将在下一个快速入门中使用它。
疑难解答
C# 应用程序执行期间的问题
总结 | 错误消息 | 解决方案 |
---|---|---|
访问令牌不正确 | 发生异常... 访问令牌是否不正确/已过期? API 调用失败:profile_add_engine_async 失败并出现:[class mip::PolicySyncException] 获取策略失败,请求失败,http 状态代码为:401,x-ms-diagnostics:[2000001;reason="无法解析随请求提交的 OAuth 令牌。";error_category="invalid_token"],correlationId:[35bc0023-3727-4eff-8062-000006d5d672]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe(进程 29924)已退出,代码为 0。 按任意键关闭此窗口。 。 . |
如果项目成功生成,但你看到与左侧类似的输出,则 AcquireOAuth2Token() 方法中可能有一个无效或过期的令牌。 返回到生成和测试应用程序并重新生成访问令牌,再次更新 AcquireOAuth2Token() ,然后重新生成/重新测试。 还可以使用 jwt.ms 单页 Web 应用检查和验证令牌及其声明。 |
后续步骤
现在你已经了解了如何列出可供经过身份验证的用户使用的保护模板,请尝试下一个快速入门: