C# 如何在AuthenticationTokenCreateContext中设置错误?

C# 如何在AuthenticationTokenCreateContext中设置错误?,c#,oauth-2.0,C#,Oauth 2.0,我必须在AuthenticationTokenCreateContext中设置错误 可以使用context.SetError()在OAuthValidateClientAuthenticationContext中设置错误 但是在AuthenticationTokenCreateContext中没有上下文。SetError() 如何在AuthenticationTokenCreateContext中设置错误?您只需使用返回完成函数流而不调用上下文.SetToken()。因此,context.Tok

我必须在AuthenticationTokenCreateContext中设置错误

可以使用context.SetError()在OAuthValidateClientAuthenticationContext中设置错误

但是在AuthenticationTokenCreateContext中没有上下文。SetError()


如何在AuthenticationTokenCreateContext中设置错误?

您只需使用
返回完成函数流而不调用
上下文.SetToken()
。因此,
context.Token
属性没有设置,也没有发送到客户端

编辑


有关解决方案的完整说明,请参阅评论和聊天。

Ok。但是我必须向客户端发送一些错误消息。这是由
Microsoft.Owin.Security.OAuth
dll管理的。您可以在中看到,但不能覆盖此行为。您正在实现哪个令牌提供程序?private void ReceiveAccessToken(AuthenticationTokenReceiveContext){}好的,您正在实现一个
AccesTokenProvider
,然后,如果您发现在令牌中反序列化身份验证票证或验证票证中的任何声明或其他错误,您可以中断流程并返回设置
context.Response.StatusCode
context.Response.ReasonPhrase
属性的错误,例如
context.Response.StatusCode=(int)HttpStatusCode.Forbidden
context.Response.ReasonPhrase=“您没有访问您正在尝试的url的权限。”
@Karthikeyan-当您完成对话后,将您的结果发布到这个问题上,这样其他用户就可以从您的发现中获益。。。。