本文整理汇总了C#中IAuthenticator.EvaluateChallenge方法的典型用法代码示例。如果您正苦于以下问题:C# IAuthenticator.EvaluateChallenge方法的具体用法?C# IAuthenticator.EvaluateChallenge怎么用?C# IAuthenticator.EvaluateChallenge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAuthenticator
的用法示例。
在下文中一共展示了IAuthenticator.EvaluateChallenge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Authenticate
/// <exception cref="AuthenticationException" />
private Task<Response> Authenticate(byte[] token, IAuthenticator authenticator)
{
var request = new AuthResponseRequest(ProtocolVersion, token);
return Send(request)
.Then(response =>
{
if (response is AuthSuccessResponse)
{
//It is now authenticated
return TaskHelper.ToTask(response);
}
if (response is AuthChallengeResponse)
{
token = authenticator.EvaluateChallenge(((AuthChallengeResponse)response).Token);
if (token == null)
{
// If we get a null response, then authentication has completed
//return without sending a further response back to the server.
return TaskHelper.ToTask(response);
}
return Authenticate(token, authenticator);
}
throw new ProtocolErrorException("Expected SASL response, obtained " + response.GetType().Name);
});
}
示例2: Authenticate
/// <exception cref="AuthenticationException" />
private void Authenticate(byte[] token, IAuthenticator authenticator)
{
var request = new AuthResponseRequest(this.ProtocolVersion, token);
var response = TaskHelper.WaitToComplete(this.Send(request), Configuration.SocketOptions.ConnectTimeoutMillis);
if (response is AuthSuccessResponse)
{
//It is now authenticated
return;
}
if (response is AuthChallengeResponse)
{
token = authenticator.EvaluateChallenge((response as AuthChallengeResponse).Token);
if (token == null)
{
// If we get a null response, then authentication has completed
//return without sending a further response back to the server.
return;
}
Authenticate(token, authenticator);
return;
}
throw new ProtocolErrorException("Expected SASL response, obtained " + response.GetType().Name);
}