通过禁用 RaiseErrorIfClaimsPrincipalAlreadyExists 允许 "idempotent signups" 是否明智?
Is it wise to allow "idempotent signups" by disabling RaiseErrorIfClaimsPrincipalAlreadyExists?
我们的一些用户正在尝试在上次登录几个月后再次注册。他们收到此错误:
A user with the specified ID already exists. Please choose a different one.
在尝试改善这些用户的体验时,我遇到了这个设置:
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<Metadata>
<Item Key="Operation">Write</Item>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
</Metadata>
如果我将RaiseErrorIfClaimsPrincipalAlreadyExists
设置为false
,则用户为overwritten/replaced。因此,他们的密码已更改,声明也已更新。据我所知,没有发生任何坏事。
据我所知,objectId 保持不变,用户只是打了补丁,没有完全替换。自定义属性仍然存在。还有什么我没看到的吗?我正在考虑简单地关闭错误,这样我们的用户就可以认为他们正在注册,即使该帐户已经存在。
看看写的是什么属性(PersistedClaims),如果写了应该没有问题,就是这样。
我们的一些用户正在尝试在上次登录几个月后再次注册。他们收到此错误:
A user with the specified ID already exists. Please choose a different one.
在尝试改善这些用户的体验时,我遇到了这个设置:
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<Metadata>
<Item Key="Operation">Write</Item>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
</Metadata>
如果我将RaiseErrorIfClaimsPrincipalAlreadyExists
设置为false
,则用户为overwritten/replaced。因此,他们的密码已更改,声明也已更新。据我所知,没有发生任何坏事。
据我所知,objectId 保持不变,用户只是打了补丁,没有完全替换。自定义属性仍然存在。还有什么我没看到的吗?我正在考虑简单地关闭错误,这样我们的用户就可以认为他们正在注册,即使该帐户已经存在。
看看写的是什么属性(PersistedClaims),如果写了应该没有问题,就是这样。