gpt4 book ai didi

c# - Azure AD : Property 'mail' is read-only and cannot be set

转载 作者:行者123 更新时间:2023-11-30 20:29:21 27 4
gpt4 key购买 nike

我尝试在 Azure AD 中创建用户,但未提交邮件,则用户创建成功。我需要在创建用户时在 Azure AD 中添加电子邮件 ID。

我在 json 中添加了 mail 属性,它显示

Property 'mail' is read-only and cannot be set.

我的 C# 代码是:

var url = string.Format("https://graph.windows.net/{0}/users?api-version=1.6",oauthsettings.TenantId);
var authDetails = _orchardServices.WorkContext.CurrentSite.As<AzureAuthenticationPart>();

var alogin = new AzureLogin();
var jwttoken = alogin.ServiceAuth(authDetails.ClientId, authDetails.ClientSecret);
var aadUser =new {
mail=email,
accountEnabled = true,
displayName = userName,
mailNickname = userName,
passwordProfile = new passwordProfile()
{
password = password,
forceChangePasswordNextLogin = authDetails.IsUpdatePwdNextLogin
},
userPrincipalName = userName + oauthsettings.DirectoryName,
};
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + jwttoken);
var modelval = Convert.ToString(JsonConvert.SerializeObject(aadUser));
var content = new StringContent(modelval, Encoding.UTF8, "application/json");
var result = client.PostAsync(url, content).Result;

登录后从 Azure AD 获取访问 token

JwtSecurityToken token = GetAccessToken(authDetails, code, returnUrl);
var claims = token.Claims;
return LogOn(claims, returnUrl);

从 JWT 获取电子邮件

public LogOnResponse LogOn(IEnumerable<System.Security.Claims.Claim> claims, string returnUrl)
{
var email = claims.FirstOrDefault(s => s.Type == "email").Value;

在这个地方我无法获取访问 token ,因为用户创建时间未在图形 API 请求中设置电子邮件。我有另一个问题是这个电子邮件 ID 仅基于我也验证了另一个网站,所以我需要在用户创建时设置电子邮件。

我需要电子邮件 ID 才能登录我的应用程序。我将 Azure AD 集成到电子邮件所需的现有应用程序中。

有谁知道如何在 Azure AD 中为用户设置电子邮件 ID。

我在 postman 中的请求。对请求中添加的电子邮件的响应

最佳答案

由于邮件属性与 Exchange Online 绑定(bind),因此除非您拥有 Exchange Online 许可证,否则我们不允许您写入该属性。当您激活用户的许可证时,Exchange Online 将在创建用户邮箱的过程中使用正确的邮箱邮件地址更新该字段。您可以在创建用户期间使用“MailNickName”和“其他电子邮件”。该字段还取决于它是“本地帐户(B2C)”还是“工作或学校帐户”。

我希望这能回答您有关“邮件”属性为“只读”的问题

关于c# - Azure AD : Property 'mail' is read-only and cannot be set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46234646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com