如何返回错误代码&用户身份验证失败时来自自定义WIF的SecurityTokenService的消息?

时间:2015-01-02 05:20:19

标签: .net wcf wif wse sts-securitytokenservice

我正在构建继承自Windows Identity Foundation SecurityTokenService的自定义安全令牌服务。

但是,我没有找到任何适当的方法可以在身份验证失败时通知客户端应用程序有关身份验证失败的详细信息。

如果是基于WIF的自定义STS,如何通知客户端身份验证失败以及失败的原因(错误代码/消息)?没有方法返回boolean True或者是假。

我可以抛出一些异常,但这是推荐的方法吗?

似乎客户总是期望对象STS返回一些声明。但是当身份验证失败时,怎么会有任何声明? 或者在身份验证失败时声明要返回?

我在各种论坛上浏览了许多与WIF相关的样本,但没有任何帮助我回答我的问题。

1 个答案:

答案 0 :(得分:0)

返回未经过身份验证的用户的某些声明并不正确!索赔不是为了这个目的。所以返回一些声明(告诉身份验证失败)不是解决方案。

约500个状态代码:

当WCF服务使用Fault Contract / Exception报告错误时,500是使用的默认HTTP状态代码。因此,如果您看到500状态代码,则不是错误;它的预期。

说完这些之后,您可以通过编写自定义服务行为和实现IErrorHandler的类来更改状态代码。

请参阅this post。它给了我这些投入。