azure-ad-b2c - Microsoft Azure > Azure 活动目录
问题描述
我创建了一个扩展:
SchemaExtension objExtDef = new SchemaExtension()
{
Description = "Extention to Store User Dates",
Id = "UserDates",
Properties = new List<ExtensionSchemaProperty>()
{
new ExtensionSchemaProperty() { Name = "CreateDate", Type = "DateTime" },
new ExtensionSchemaProperty() { Name = "PasswordChangeDate", Type = "DateTime" }
},
TargetTypes = new List<string>()
{
"User"
}
};
SchemaExtension schemaExtension = Task.Run(() => graphserviceClient.SchemaExtensions.Request().AddAsync(objExtDef)).Result;
使其可用:
var schemaExtension = new SchemaExtension
{
Status = "Available",
};
var result = Task.Run(() => graphserviceClient.SchemaExtensions["extuce7u7qp_UserDates"].Request().UpdateAsync(schemaExtension)).Result;
搜索并确认它已创建并可用:
var lstAllExtensions = Task.Run(() => graphserviceClient.SchemaExtensions.Request().Filter("id%20eq%20'extuce7u7qp_UserDates'").GetAsync()).Result;
尝试在该扩展中添加用户以及其他数据:
UserDatesExtension objUserDatesExtension = new UserDatesExtension();
objUserDatesExtension.CreateDate = DateTime.Today;
objUserDatesExtension.PasswordChangeDate = DateTime.Today;
dctExtensions.Add("extuce7u7qp_UserDates", objUserDatesExtension);
Microsoft.Graph.User objNewUser = new Microsoft.Graph.User
{
AccountEnabled = true,
DisplayName = string.Format("{0} {1}", objUser.FirstName, objUser.LastName),
MailNickname = "TestUC",
PasswordProfile = new PasswordProfile
{
Password = "testpass",
ForceChangePasswordNextSignIn = false
},
UserPrincipalName = string.Format("{0}@test.onmicrosoft.com", objUser.UserIdentity),
GivenName = objUser.FirstName,
Surname = objUser.LastName,
City = objUser.Address != null ? objUser.Address.City : null,
Country = objUser.Address != null ? objUser.Address.Country : null,
State = objUser.Address != null ? objUser.Address.Region : null,
MobilePhone = !string.IsNullOrEmpty(objUser.Phone) ? objUser.Phone : null,
PreferredLanguage = objUser.PreferredLanguage,
AdditionalData = dctExtensions
};
Microsoft.Graph.User objCreatedUser = Task.Run(() => graphserviceClient.Users.Request().AddAsync(objNewUser)).Result;
这会引发扩展 ID 无效的异常。
这是早些时候工作的。
UserDatesExtension 类,上面使用过:
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class UserDatesExtension
{
[JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "CreateDate", Required = Newtonsoft.Json.Required.Default)]
public DateTime CreateDate { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "PasswordChangeDate", Required = Newtonsoft.Json.Required.Default)]
public DateTime PasswordChangeDate { get; set; }
}
解决方案
推荐阅读
- kubernetes - Helm 回滚到以前的构建没有反映在部署中
- google-api - Google My Business API 不可接受的错误
- python - 如何使这个 python 循环递增一个 int 上下重复
- python - 带有 If 条件的 For 循环以返回非 NA 值
- reactjs - 激活和停用 textInput
- python - Pandas 地图 --- ValueError: 长度不匹配
- rust - 通过 serde 捕获原始有效载荷
- reactjs - React Routing:如何根据 url 重定向到匹配的选项卡?
- mongodb - 从 mongodb 检索 JSON 数据,并在字段中显式添加格式,例如({“field”:{$numberInt:“20”}})。如何处理这些数据?
- python - 如何在 Tkinter 中用鼠标悬停在网络摄像头上绘图?