还原客户的已删除用户

如何按客户 ID 和用户 ID 还原已删除的用户。

先决条件

  • 合作伙伴中心身份验证中所述的凭据。 此方案只支持使用应用凭据和用户凭据进行身份验证。

  • 客户 ID (customer-tenant-id)。 如果不知道客户的 ID,可以通过选择“客户”工作区,然后从客户列表中选择客户,然后选择“帐户”,在合作伙伴中心查找该 ID。 在客户的“帐户”页上,在“客户帐户信息”部分查找 Microsoft ID Microsoft ID 与客户 ID (customer-tenant-id) 相同。

  • 用户 ID。 如果没有用户 ID,请参阅 查看客户已删除的用户

GDAP 角色

至少需要以下 GDAP 角色之一:

  • 用户管理员
  • 目录写入者

还原已删除的用户帐户

删除用户帐户时,用户状态设置为“非活动”。 30 天后,用户帐户及其关联数据将清除并使其不可恢复。 在此 30 天时段,只能还原已删除的用户帐户。 删除并标记为“非活动”后,用户帐户将不再作为用户集合的成员返回(例如,使用 获取客户的所有用户帐户的列表)。

C#

若要还原用户,请创建 CustomerUser 类的新实例,并将 User.State 属性的值设置为 UserState.Active。

通过将用户的状态设置为活动状态来还原已删除的用户。 无需重新填充用户资源中的剩余字段。 这些值将自动从已删除的非活动用户资源还原。 接下来,使用具有客户 ID 的 IAggregatePartner.Customers.ById 方法来标识客户,使用 Users.ById 方法标识用户。

最后,调用 Patch 方法并传递 CustomerUser 实例以发送请求以还原用户。

// IAggregatePartner partnerOperations;
// string selectedCustomerId;
// string selectedCustomerUserId;

var updatedCustomerUser = new CustomerUser()
{
    State = UserState.Active
};

// Restore customer user information.
var restoredCustomerUserInfo = partnerOperations.Customers.ById(selectedCustomerId).Users.ById(selectedCustomerUserId).Patch(updatedCustomerUser);

示例控制台测试应用项目:合作伙伴中心 SDK 示例 :CustomerUserRestore.cs

REST 请求

请求语法

方法 请求 URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/users/{user-id} HTTP/1.1

URI 参数

使用以下查询参数指定客户 ID 和用户 ID。

名称 类型 必需 说明
customer-tenant-id Guid Y 该值是 GUID 格式 的客户租户 ID ,允许经销商将结果筛选给给定客户。
user-id Guid Y 该值是属于单个用户帐户的 GUID 格式 的用户 ID

请求标头

有关详细信息,请参阅合作伙伴中心 REST 标头

请求正文

下表描述了请求正文中的必需属性。

名称 类型 必需 说明
State string Y 用户状态。 若要还原已删除的用户,此字符串必须包含“active”。
属性 对象 (object) N 包含“ObjectType”:“CustomerUser”。

请求示例

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/users/a45f1416-3300-4f65-9e8d-f123b397a4ea HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 6e668bc0-5bd7-44d6-b6fa-529d41ce9659
MS-CorrelationId: 32be760f-8282-4e01-a37b-829c8a700e8a
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 269
Expect: 100-continue

{
    "State": "active",
    "Attributes": {
        "ObjectType": "CustomerUser"
    }
}

REST 响应

如果成功,响应在响应正文中返回还原的用户信息。

响应的成功和错误代码

每个响应都带有一个 HTTP 状态代码,用于指示成功或失败以及其他调试信息。 请使用网络跟踪工具来读取此代码、错误类型和其他参数。 有关完整列表,请参阅 合作伙伴中心 REST 错误代码

响应示例

HTTP/1.1 200 OK
Content-Length: 465
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 32be760f-8282-4e01-a37b-829c8a700e8a
MS-RequestId: 6e668bc0-5bd7-44d6-b6fa-529d41ce9659
MS-CV: ZTeBriO7mEaiM13+.0
MS-ServerId: 101112616
Date: Fri, 20 Jan 2017 22:24:55 GMT

{
    "usageLocation": "US",
    "id": "a45f1416-3300-4f65-9e8d-f123b397a4ea",
    "userPrincipalName": "e83763f7f2204ac384cfcd49f79f2749@dtdemocspcustomer005.onmicrosoft.com",
    "firstName": "Ferdinand",
    "lastName": "Filibuster",
    "displayName": "Ferdinand",
    "userDomainType": "none",
    "state": "active",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/users/a45f1416-3300-4f65-9e8d-f123b397a4ea",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "CustomerUser"
    }
}