in OAuthWebSample/OAuthWebSample/Controllers/OAuthController.cs [118:152]
private static bool ValidateCallbackValues(String code, String state, out String error)
{
error = null;
if (String.IsNullOrEmpty(code))
{
error = "Invalid auth code";
}
else
{
Guid authorizationRequestKey;
if (!Guid.TryParse(state, out authorizationRequestKey))
{
error = "Invalid authorization request key";
}
else
{
TokenModel tokenModel;
if (!s_authorizationRequests.TryGetValue(authorizationRequestKey, out tokenModel))
{
error = "Unknown authorization request key";
}
else if (!tokenModel.IsPending)
{
error = "Authorization request key already used";
}
else
{
s_authorizationRequests[authorizationRequestKey].IsPending = false; // mark the state value as used so it can't be reused
}
}
}
return error == null;
}