示例#1
0
        /// <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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
 public static void SignInWithFlickr()
 {
     FlickrSignIn.Channel.Send(FlickrSignIn.PrepareRequestUserAuthorization());
 }