public async Task<ActionResult> BeginAsync(string returnUrl = "/")
        {
            var auth = new MvcAuthorizer
            {
                CredentialStore = new SessionStateCredentialStore
                {
                    ConsumerKey = ConfigurationManager.AppSettings["consumerKey"],
                    ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"]
                }
            };

            //check if we already have auth in a cookie
            if (Cookies.Read(Request, Server, "TwitterOAuthToken") != null)
            {
                //load credentials from cookie. if oauthToken is not null, assume all of them are not null
                try
                {
                    auth.CredentialStore.OAuthToken = Cookies.Read(Request, Server, "TwitterOAuthToken");
                    auth.CredentialStore.OAuthTokenSecret = Cookies.Read(Request, Server, "TwitterOAuthTokenSecret");
                    auth.CredentialStore.ScreenName = Cookies.Read(Request, Server, "TwitterScreenName");
                    auth.CredentialStore.UserID = Convert.ToUInt64(Cookies.Read(Request, Server, "TwitterUserID"));
                }
                catch
                {
                    //if an exception occurs, do OAuth consent
                    string twitterCallbackUrl = Request.Url.ToString().Replace("Begin", "Complete") + "?returnUrl=" + returnUrl;
                    return await auth.BeginAuthorizationAsync(new Uri(twitterCallbackUrl));
                }

                //return to calling url
                return Redirect(returnUrl);
            }
            else
            {
                string twitterCallbackUrl = Request.Url.ToString().Replace("Begin", "Complete") +"?returnUrl=" +returnUrl;
                return await auth.BeginAuthorizationAsync(new Uri(twitterCallbackUrl));
            }
        }
예제 #2
0
        public async Task<ActionResult> BeginAsync()
        {
            //var auth = new MvcSignInAuthorizer
            var auth = new MvcAuthorizer
            {
                CredentialStore = new SessionStateCredentialStore
                {
                    ConsumerKey = ConfigurationManager.AppSettings["consumerKey"],
                    ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"]
                }
            };

            string twitterCallbackUrl = Request.Url.ToString().Replace("Begin", "Complete");
            return await auth.BeginAuthorizationAsync(new Uri(twitterCallbackUrl));
        }
예제 #3
0
        public async Task<ActionResult> BeginAsync(int? serviceInterval)
        {
            //  ServiceInterval = serviceInterval??10;

            //var auth = new MvcSignInAuthorizer
            var auth = new MvcAuthorizer
            {

                CredentialStore = new SessionStateCredentialStore
                {
                    ConsumerKey = ConfigurationManager.AppSettings["ConsumerKey"].ToString(),// "0vbuhbtd8Zz7M121MtxtrA",
                    ConsumerSecret = ConfigurationManager.AppSettings["ConsumerSecret"].ToString()// "5aj5te5ygcpPCBOMrwvGcjI8GAoAfAZFMlpLhyt2U"
                }
            };
            string twitterCallbackUrl = Request.Url.ToString().Replace("Begin", "Complete");
            return await auth.BeginAuthorizationAsync(new Uri(twitterCallbackUrl));
        }
예제 #4
0
        //
        // GET: /Account/LogOn

        public async Task<ActionResult> LogOn(bool complete = false)
        {
            //return View();
            if (!Request.IsAuthenticated)
            {
                if (complete)
                {
                    var auth = new MvcAuthorizer
                    {
                        CredentialStore = new SessionStateCredentialStore()
                    };

                    await auth.CompleteAuthorizeAsync(Request.Url);

                    FormsAuthentication.SetAuthCookie(auth.CredentialStore.ScreenName, true);
                    PostworthyUser pm = UsersCollection.Single(auth.CredentialStore.ScreenName, force: true, addIfNotFound: true);
                    if (string.IsNullOrEmpty(pm.AccessToken) && string.IsNullOrEmpty(pm.OAuthToken))
                    {
                        pm.AccessToken = auth.CredentialStore.OAuthTokenSecret;
                        pm.OAuthToken = auth.CredentialStore.OAuthToken;
                        UsersCollection.Save();
                    }

                    return RedirectToAction("Index", new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional });
                }
                else
                {
                    //var auth = new MvcSignInAuthorizer
                    var auth = new MvcAuthorizer
                    {
                        CredentialStore = new SessionStateCredentialStore
                        {
                            ConsumerKey = ConfigurationManager.AppSettings["TwitterCustomerKey"],
                            ConsumerSecret = ConfigurationManager.AppSettings["TwitterCustomerSecret"]
                        }
                    };
                    string twitterCallbackUrl = Request.Url.ToString() + "?complete=true";
                    return await auth.BeginAuthorizationAsync(new Uri(twitterCallbackUrl));
                }
            }
            else
                return RedirectToAction("Index", new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional });
        }
예제 #5
0
        public async Task<ActionResult> BeginAsync()
        {
            //var auth = new MvcSignInAuthorizer
            var auth = new MvcAuthorizer
            {
                CredentialStore = new SessionStateCredentialStore
                {
                    ConsumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"],
                    ConsumerSecret = ConfigurationManager.AppSettings["TwitterConsumerSecret"]
                }
            };

            UrlHelper uHelp = new UrlHelper(Request.RequestContext);
            Uri url = Request.Url;
            string newUrl = new UriBuilder(url.Scheme, url.Host, url.Port, uHelp.Action("CompleteAsync", "Oauth")).ToString();
            Uri callbackUri = new Uri(newUrl);
           
            return await auth.BeginAuthorizationAsync(callbackUri);
        }