【问题标题】:Cannot update read/write attributes of UserPoolClient via C# SDK无法通过 C# SDK 更新 UserPoolClient 的读/写属性
【发布时间】:2019-05-07 08:51:35
【问题描述】:

以编程方式创建 Cognito 用户池和应用程序客户端时,如果应用程序客户端具有对用户池属性的读/写访问权限,则必须明确授予该访问权限。我已经能够成功地为自定义属性执行此操作,但内置属性总是返回“创建客户端时指定的写入属性无效”或“创建客户端时指定的读取属性无效”的错误。

文档是......既庞大又难以找到。除了诸如“ReadAttributes 是可以读取的属性的字符串列表”之类的内容之外,我还没有看到这个示例或有关 CreateUserPoolClientRequest 类型的实际有用文档。

这是我正在使用的代码,它总是以错误消息结束并且无法创建应用程序客户端。 _client 是一个 AmazonCognitoIdentityProviderClient 正确实例化和凭证并在 lambda 函数中运行。

var request = new CreateUserPoolClientRequest { UserPoolId = userPoolId, ClientName = $"{name}AppClient" };

var builtInAttributes = new List<string>()
        {
            "address","birthdate","email","family name","gender","given name","locale","middle name","name","nickname","phone number", "picture","preferred username","profile","zoneinfo","updated at","website"
        };

var readAttributes = new List<string>();
var writeAttributes = new List<string>();

readAttributes.InsertRange(0,builtInAttributes);
writeAttributes.InsertRange(0, builtInAttributes);

var attributeConfig = ConfigurationHelper.GetListFromSection("UserPoolCustomAttributes");

foreach (var attribute in attributeConfig)
{
   readAttributes.Add($"custom:{attribute.Key}");
   writeAttributes.Add($"custom:{attribute.Key}");

}

request.ReadAttributes = readAttributes;
request.WriteAttributes = writeAttributes;

var result = await _client.CreateUserPoolClientAsync(request, CancellationToken.None);

非常感谢任何帮助。

【问题讨论】:

    标签: c# amazon-cognito aws-userpools


    【解决方案1】:

    想通了。虽然我还没有在任何地方找到它的文档,但在 ui 中名称中带有空格的默认属性需要在 api 中使用其名称时将该空格替换为下划线。

    【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多