如何在ASP .NET Core中创建Azure AD用户?

爱德华多·丰塞卡(Eduardo Fonseca)

我目前正在使用ASP .NET Core在门户中工作。要求之一是创建Azure AD用户,在此过程中发现了两个问题。

首先,当尝试使用GraphClient SDK时,出现以下编译错误:

Severity    Code    Description Project File    Line    Suppression State
Error   CS0012  The type 'IList<>' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.  PTIWebPortal.Packages.Cloud.DNX 4.6
D:\Eduardo\PTI Projects\PTIPortal\Portal\PTIPortal\PTIWebPortal.Packages.Cloud\CloudUserManager.cs  40  Active

尝试设置对象newUser.OtherMails = new System.Collections.Generic.List();的OtherMails属性时发生这种情况。

另一个编译错误是

Severity    Code    Description Project File    Line    Suppression State
Error   CS0012  The type 'Uri' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.  
PTIWebPortal.Packages.Cloud.DNX 4.6 
D:\Eduardo\PTI Projects\PTIPortal\Portal\PTIPortal\PTIWebPortal.Packages.Cloud\CloudUserManager.cs  43  Active

尝试实例化ActiveDirectoryClient ActiveDirectoryClient adClient = new ActiveDirectoryClient(serviceRoot,null)时,会发生这种情况。

我认为这两个错误是由于SDK尚未与.NET Core完全兼容,因为我已经在使用Uri类型,而这是一个不同的版本

//由.NET Reflector从C:\ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System \ v4.0_4.0.0.0__b77a5c561934e089 \ System.dll生成

我花了太多时间,所以我决定尝试使用Microsoft Graph,但是即使在Azure AD中向应用程序添加了读写目录数据后,我仍然收到“禁止”响应,这是该代码的当前代码。

public static readonly string CreateUserUrl = @"https://graph.microsoft.com/{0}/users";
public static async Task<UserInfo> CreateUser(string accessToken, UserInfo pUser)
        {
            using (var client = new HttpClient())
            {
                using (var request = new HttpRequestMessage(HttpMethod.Post, Settings.CreateUserUrl.v10Version()))
                {
                    request.Headers.Accept.Add(Json);
                    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
                    var userData = new
                    {
                        accountEnabled = true,
                        displayName = pUser.DisplayName,
                        mailNickname = pUser.Username,
                        passwordProfile = new
                        {
                            password = pUser.Password,
                            forceChangePasswordNextSignIn = false
                        },
                        userPrincipalName = string.Format("{0}@{1}", pUser.Username, pUser.Domain)
                    };
                    string serializedData = JsonConvert.SerializeObject(userData);
                    request.Content = new StringContent(serializedData, System.Text.Encoding.UTF8, "application/json");
                    //https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations
                    //http://stackoverflow.com/questions/35845541/microsoft-graph-rest-api-add-attachment-to-email-using-c-sharp-asp-net-mvc

                    using (var response = await client.SendAsync(request))
                    {
                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            var json = JObject.Parse(await response.Content.ReadAsStringAsync());
                            //myInfo.DisplayName = json?["displayName"]?.ToString();
                            //myInfo.MailAddress = json?["mail"]?.ToString().Trim().Replace(" ", string.Empty);
                            //myInfo.Department = json?["department"]?.ToString();
                            //myInfo.PhotoBytes = await GetUserPhotoAsync(accessToken, json?["userPrincipalName"]?.ToString());
                        }
                    }
                }
            }
            return pUser;
        }

注意:我已经能够以Azure AD用户身份登录,并且还能够使用Microsoft Graph获取信息。

有什么想法可以解决两个问题中的任何一个吗?

  • 从.NET Core应用程序中使用.NET SDK创建Azure AD用户
  • 解决了尝试使用Microsoft Graph创建用户的“禁止”问题
爱德华多·丰塞卡(Eduardo Fonseca)

使用Azure SDK找到了第一个问题的解决方案,不得不添加dependenci,但是在project.json的Famework Assemblies部分中

"frameworks": {
    "dnx46": {
      "dependencies": {
        "Microsoft.Azure.ActiveDirectory.GraphClient": "2.1.0",
        "Microsoft.Azure.Common": "2.1.0",
        "Microsoft.Azure.Management.Resources": "3.4.0-preview",
        "Microsoft.Azure.Management.Websites": "1.1.0-preview",
        "Microsoft.Azure.Gallery": "2.6.2-preview",
        "Microsoft.Azure.Common.Dependencies": "1.0.0",
        "Microsoft.WindowsAzure.Common": "1.4.1",
        "Microsoft.WindowsAzure.Management.MediaServices": "4.1.0",
        "Microsoft.WindowsAzure.Management.Storage": "5.1.1",
        "Microsoft.WindowsAzure.Management.Compute": "12.3.1",
        "Microsoft.WindowsAzure.Management.Libraries": "2.0.0",
        "WindowsAzure.MediaServices": "3.5.2",
        "windowsazure.mediaservices.extensions": "3.3.0",
        "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.9.302261508-alpha",
        "Microsoft.Framework.WebEncoders": "1.0.0-beta8",
      },
      "frameworkAssemblies": {
        "System.Runtime": "4.0.20.0",
        "System.Threading.Tasks": "4.0.10.0"
      }
    }
  },

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP .NET Core中创建Azure AD用户?

来自分类Dev

如何在ASP Net Core MVC应用程序中从Azure AD B2C获取用户列表?

来自分类Dev

在 ASP.NET Core 用户请求中读取 Azure AD 用户属性

来自分类Dev

使用ASP.Net Core检测外部Azure AD用户

来自分类Dev

如何使用.Net Core授权AD用户

来自分类Dev

在ASP.NET MVC和Azure AD中创建自定义用户角色

来自分类Dev

如何在asp.net中获取会员用户的密码

来自分类Dev

如何在 asp.net core 中创建类扩展?

来自分类Dev

如何更新 Azure AD 用户?

来自分类Dev

使用 ASP.Net Identity 时如何获取 AD 用户

来自分类Dev

如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

来自分类Dev

ASP.NET MVC 使用 Azure AD 身份验证——如何允许用户管理组/角色分配?

来自分类Dev

如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

来自分类Dev

如何在ASP.NET Core WebApi控制器中获取当前登录的用户

来自分类Dev

如何在ViewComponent Asp.Net Core中获取当前的登录用户

来自分类Dev

如何在ASP.NET中动态创建的用户控件上找到控件?

来自分类Dev

如何在ASP.NET MVC身份验证中创建和验证用户?

来自分类Dev

如何在ASP.NET Identity中创建不同的用户类型?

来自分类Dev

如何在OData asp.net Web API中创建注册用户操作

来自分类Dev

如何在ASP.NET Identity中创建不同的用户类型?

来自分类Dev

如何在OData asp.net Web API中创建注册用户操作

来自分类Dev

如何在ASP.NET中动态创建的用户控件上找到控件?

来自分类Dev

如何在Amazon Directory Services Simple AD中创建用户?

来自分类Dev

如何在ASP.NET Core 3上同时使用Azure AD身份验证和身份?

来自分类Dev

如何在 Azure AD 中创建自定义用户角色?

来自分类Dev

使用ASP.NET C#在AD中创建用户时,无法使用DirectoryEntry.Invoke设置密码

来自分类Dev

如何使用 ASP.Net (C#) 在 Azure Active Directory 中创建组/用户?

来自分类Dev

如何在ASP.net vb.net中获取当前用户ID的电子邮件

来自分类Dev

将Azure AD与Identity Core(ASP.NET Core 2.1)一起用作外部登录时无法获得用户组声明

Related 相关文章

  1. 1

    如何在ASP .NET Core中创建Azure AD用户?

  2. 2

    如何在ASP Net Core MVC应用程序中从Azure AD B2C获取用户列表?

  3. 3

    在 ASP.NET Core 用户请求中读取 Azure AD 用户属性

  4. 4

    使用ASP.Net Core检测外部Azure AD用户

  5. 5

    如何使用.Net Core授权AD用户

  6. 6

    在ASP.NET MVC和Azure AD中创建自定义用户角色

  7. 7

    如何在asp.net中获取会员用户的密码

  8. 8

    如何在 asp.net core 中创建类扩展?

  9. 9

    如何更新 Azure AD 用户?

  10. 10

    使用 ASP.Net Identity 时如何获取 AD 用户

  11. 11

    如何在ASP.NET Core MVC中基于用户表中的字段添加声明?

  12. 12

    ASP.NET MVC 使用 Azure AD 身份验证——如何允许用户管理组/角色分配?

  13. 13

    如何在ASP.NET Core MVC 6中为用户保留策略授权结果?

  14. 14

    如何在ASP.NET Core WebApi控制器中获取当前登录的用户

  15. 15

    如何在ViewComponent Asp.Net Core中获取当前的登录用户

  16. 16

    如何在ASP.NET中动态创建的用户控件上找到控件?

  17. 17

    如何在ASP.NET MVC身份验证中创建和验证用户?

  18. 18

    如何在ASP.NET Identity中创建不同的用户类型?

  19. 19

    如何在OData asp.net Web API中创建注册用户操作

  20. 20

    如何在ASP.NET Identity中创建不同的用户类型?

  21. 21

    如何在OData asp.net Web API中创建注册用户操作

  22. 22

    如何在ASP.NET中动态创建的用户控件上找到控件?

  23. 23

    如何在Amazon Directory Services Simple AD中创建用户?

  24. 24

    如何在ASP.NET Core 3上同时使用Azure AD身份验证和身份?

  25. 25

    如何在 Azure AD 中创建自定义用户角色?

  26. 26

    使用ASP.NET C#在AD中创建用户时,无法使用DirectoryEntry.Invoke设置密码

  27. 27

    如何使用 ASP.Net (C#) 在 Azure Active Directory 中创建组/用户?

  28. 28

    如何在ASP.net vb.net中获取当前用户ID的电子邮件

  29. 29

    将Azure AD与Identity Core(ASP.NET Core 2.1)一起用作外部登录时无法获得用户组声明

热门标签

归档