/// <summary> /// Prepares a redirect that will send the user to Flickr to sign in. /// </summary> /// <param name="forceNewLogin">if set to <c>true</c> the user will be required to re-enter their Flickr credentials even if already logged in to Flickr.</param> /// <returns>The redirect message.</returns> /// <remarks> /// Call <see cref="OutgoingWebResponse.Send"/> or /// <c>return StartSignInWithFlickr().<see cref="MessagingUtilities.AsActionResult">AsActionResult()</see></c> /// to actually perform the redirect. /// </remarks> public static OutgoingWebResponse StartSignInWithFlickr() { var redirectParameters = new Dictionary <string, string>(); Uri callback = MessagingUtilities.GetRequestUrlFromContext().StripQueryArgumentsWithPrefix("oauth_"); var request = FlickrSignIn.PrepareRequestUserAuthorization(callback, null, redirectParameters); return(FlickrSignIn.Channel.PrepareResponse(request)); }
/// <summary> /// Checks the incoming web request to see if it carries a Flickr authentication response, /// and provides the user's Flickr screen name and unique id if available. /// </summary> /// <param name="screenName">The user's Flickr screen name.</param> /// <param name="userId">The user's Flickr unique user ID.</param> /// <returns> /// A value indicating whether Flickr authentication was successful; /// otherwise <c>false</c> to indicate that no Flickr response was present. /// </returns> public static bool TryFinishSignInWithFlickr(out string screenName, out string userId, out string access_token) { screenName = null; userId = ""; access_token = ""; var response = FlickrSignIn.ProcessUserAuthorization(); if (response == null) { return(false); } access_token = response.AccessToken; screenName = response.ExtraData["fullname"]; userId = response.ExtraData["user_nsid"]; // If we were going to make this LOOK like OpenID even though it isn't, // this seems like a reasonable, secure claimed id to allow the user to assume. OpenId.Identifier fake_claimed_id = string.Format(CultureInfo.InvariantCulture, "http://flickr.com/{0}#{1}", screenName, userId); return(true); }
public static void SignInWithFlickr() { FlickrSignIn.Channel.Send(FlickrSignIn.PrepareRequestUserAuthorization()); }