Azure ad b2c 如何在代码中创建用户,将其添加到Azure AD B2C,然后使用Azure AD B2C OAuth(MSAL)作为该用户登录

Azure ad b2c 如何在代码中创建用户,将其添加到Azure AD B2C,然后使用Azure AD B2C OAuth(MSAL)作为该用户登录,azure-ad-b2c,microsoft-graph-sdks,Azure Ad B2c,Microsoft Graph Sdks,阅读之后,我认为我应该能够将一个用户添加到active directory B2C,然后能够作为该用户登录。错误消息是:“我们似乎找不到您的帐户” [TestMethod] 公共异步任务CreateUserTest() { 字符串mailNickname=Guid.NewGuid().ToString(); 字符串upn=mailNickname+“@mydomain.onmicrosoft.com”; 字符串电子邮件=”zzz@gmail.com"; 用户记录=新用户{Email=Email,

阅读之后,我认为我应该能够将一个用户添加到active directory B2C,然后能够作为该用户登录。错误消息是:“我们似乎找不到您的帐户”

[TestMethod]
公共异步任务CreateUserTest()
{
字符串mailNickname=Guid.NewGuid().ToString();
字符串upn=mailNickname+“@mydomain.onmicrosoft.com”;
字符串电子邮件=”zzz@gmail.com";
用户记录=新用户{Email=Email,DisplayName=“Bob Smith”,MailNickname=MailNickname,UserPrincipalName=upn};
record.identies=新列表();
record.PasswordProfile=新的PasswordProfile();
record.identity.Append(新ObjectIdentity{Issuer=“mydomain.onmicrosoft.com”,issuerasignedid=email,ODataType=“microsoft.graph.ObjectIdentity”,signitype=“emailAddress”});
record.identity.Append(新ObjectIdentity{Issuer=“mydomain.onmicrosoft.com”,issuerasignedid=upn,ODataType=“microsoft.graph.ObjectIdentity”,signityType=“userPrincipalName”});
record.PasswordProfile.Password=“Abcdefgh123!!”;
record.AccountEnabled=true;
record.PasswordProfile.ForceChangePasswordNextSignIn=false;
User User=wait graphService.CreateUser(记录);
Assert.IsNotNull(用户);
}
公共异步任务CreateUser(用户用户)
{
var result=await client.Users.Request().AddAsync(user);
返回用户;
}
如果用户使用现有帐户登录或使用“立即注册”链接创建新帐户,则此登录代码有效:

export const SignIn = async (appState: AppState): Promise<string> => {

    var msg: string = '';

    try {
        const response = await MSAL.login('loginPopup');
export const SignIn=async(appState:appState):Promise=>{
var msg:string='';
试一试{
const response=wait MSAL.login('loginPopup');
编辑:添加显示用户类型和来源的屏幕上限:


我试图创建一个消费者用户,其代码与您的类似:

并在用户流中使用此帐户进行测试,它很好地返回了令牌:

请检查您在代码中创建的帐户,用户类型始终需要是
成员
,并且具有源
Azure Active Directory


谢谢Pamela,但是没有这样的属性
Source
。你指的是什么?你答案中的代码与我问题中的代码有何不同?你在哪里设置用户类型和源代码?截图显示了我的所有代码。然后导航到Azure AD B2C->Users->门户中的
Source
。我使用了ClientCredentialProvider获取graphClient,然后将该域替换为我的b2c域。仅此而已。请帮助我了解您的回答如何回答我的问题。您的回答中的代码与我的问题中的代码有何不同?我做错了什么?您在哪里设置用户类型和源?用户类型和源在门户f中设置或者我添加的用户。我想Azure AD会设置这些属性。抱歉,我没有解释清楚。首先,我以前使用的代码与您的代码相同,并且我没有设置任何其他属性。添加用户后,我在门户中检查了用户。请共享您的类型和资源,因为如果用户类型和资源不正确,它将丢失我将返回错误。如果您使用错误的用户名(upn)登录,它也将返回此错误。我不确定问题的原因。
export const SignIn = async (appState: AppState): Promise<string> => {

    var msg: string = '';

    try {
        const response = await MSAL.login('loginPopup');