我的应用程序旨在使用Azure AD Graph API将用户添加到我的Azure AD B2C。我还处理了使用AD中已经存在的电子邮件ID调用添加用户图API的情况。我在响应正文中寻找错误消息以解决此问题。响应消息有没有变化?
POST
https://graph.windows.net/{tenant}/users?api-version=1.6
请求正文:
{
"accountEnabled": true,
"signInNames": [
{
"type": "EmailAddress",
"value": "TestGraphApiCreatedUser@TestGraphApiCreatedUser.com"
}],
"displayName": "TestGraphApiCreatedUser",
"mailNickname": "TestGraphApiCreatedUser",
"passwordProfile" : {
"forceChangePasswordNextLogin": false,
"password": "vhkjds#fceu456VCHU"
},
"creationType": "LocalAccount",
"passwordPolicies": "DisablePasswordExpiration"
}
如果用户已经存在与给定的电子邮件地址,那么我之前遇到的错误是
{
"odata.error": {
"code": "Request_BadRequest",
"message": {
"lang": "en",
"value": "Another object with the same value for property signInName already exists."
}
}
}
现在,对于相同的流程,我将遇到以下错误:
{
"odata.error": {
"code": "Request_BadRequest",
"message": {
"lang": "en",
"value": "Another object with the same value for property userPrincipalName already exists."
}
}
}
两个错误消息之间是否有任何区别。由于没有任何错误代码,因此我对整个错误消息进行了硬编码。现在,消息中有微小的变化,我必须更新代码。我该如何更好地处理呢?
答案 0 :(得分:0)
我没有检查确认他们是否更改了错误消息,但是如果他们更改了错误消息,这根本不会令我感到惊讶。 userPrincipalName可能来自基础AAD,也许MS更改了B2C实施,现在它从那里公开了错误消息?
在您的特定情况下,更好的选择可能是在调用API创建新用户之前检查B2C中是否存在电子邮件地址。这是一个额外的API调用,但不要紧,除非您一次创建多个用户,例如一批您仍然必须处理用户创建调用失败,但是如果发生这种情况,您可能只返回通用错误消息。