为简单起见,我实现了以下类:
public class CustomUserNamePasswordValidatorSecurityTokenHandler : UserNameSecurityTokenHandler {}
我已启用它配置(并启用了正确的configSection):
<microsoft.identityModel>
<service>
<securityTokenHandlers>
<clear />
<add type="CustomUserNamePasswordValidatorSecurityTokenHandler" />
</securityTokenHandlers>
</service>
</microsoft.identityModel>
对我的STS执行实际的RP调用(在服务跟踪查看器中):
令牌序列化程序无法序列化“Microsoft.IdentityModel.Tokens.SessionSecurityToken”。如果这是自定义类型,则必须提供自定义序列化程序。
如果我注释掉配置(所以没有令牌处理程序适用),一切正常。如何提供此自定义序列化程序?
注意:在this thread中有几个引用该问题,但我没有看到解决方案。
答案 0 :(得分:1)
删除securityTokenHandler部分上的<clear />
就足够了(我编辑后可能会相应地回复other question,抱歉)。
<clear />
删除所有默认注册处理程序(例如,对于SessionSecurityToken)。