public override ClaimsIdentity ProcessSignInResponse(string realm, string originalUrl, HttpContextBase httpContext)
{
var client = new TwitterClient(this.consumerKey, this.consumerSecret);
AuthenticationResult result;
try
{
result = client.VerifyAuthentication(httpContext);
}
catch (WebException wex)
{
throw new InvalidOperationException(new StreamReader(wex.Response.GetResponseStream()).ReadToEnd(), wex);
}
var claims = new List<Claim>
{
new Claim(System.IdentityModel.Claims.ClaimTypes.NameIdentifier, result.ExtraData["name"])
};
foreach (var claim in result.ExtraData)
{
claims.Add(new Claim("http://schemas.twitter.com/" + claim.Key, claim.Value));
}
return new ClaimsIdentity(claims, "Twitter");
}