コード例 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(Request.QueryString["provider"]))
            {
                throw new ArgumentNullException("provider");
            }

            // build callback url
            string returnUrl = new Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri;

            // pop-up indicator for JavaScript code
            if (!String.IsNullOrEmpty(Request.QueryString["popup"]))
            {
                if (returnUrl.IndexOf("?") != -1)
                {
                    returnUrl += "&";
                }
                else
                {
                    returnUrl += "?";
                }
                returnUrl += "popup=true";
            }

            // redirect to authorization page of the specified provider
            OAuthWeb.RedirectToAuthorization(Request.QueryString["provider"], returnUrl);
        }
コード例 #2
0
        //AUTENTICAÇÕES

        protected void socialLogin(object sender, EventArgs e)
        {
            string provider  = ((LinkButton)sender).Attributes["data-provider"];
            string returnUrl = new Uri(Request.Url, "testLogin.aspx").AbsoluteUri;

            OAuthWeb.RedirectToAuthorization(provider, returnUrl);
        }
コード例 #3
0
        /// <summary>
        /// Redirect to login
        /// </summary>
        /// <param name="provider">Provider name. For example: facebook, twitter, google etc.</param>
        public ActionResult ExternalLogin(string provider)
        {
            // build callback url
            string returnUrl = Url.Action("ExternalLoginResult", "Home", null, null, Request.Url.Host);

            // not suppored localhost (it is only for localhost)
            if (this.NotSupportedLocalhost.Any(itm => itm.Equals(provider, StringComparison.OrdinalIgnoreCase)))
            {
                returnUrl = String.Format("http://oauth.nemiro.net/oauth_redirect.html?returnUrl={0}", Server.UrlEncode(returnUrl));
            }
            // --

            // redirect to authorization page of the specified provider
            return(Redirect
                   (
                       OAuthWeb.GetAuthorizationUrl
                       (
                           provider,
                           returnUrl,
                           new
            {
                text = "custom state",
                text2 = "you can use any type with any data",
                aaa = 123,
                bbb = "abc"
            }
                       )
                   ));

            // return Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl, "custom state"));
            // return Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl, 123));

            // without state
            // return Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl));
        }
コード例 #4
0
        public ActionResult OAuthRegister()
        {
            var result = OAuthWeb.VerifyAuthorization();

            if (result.IsSuccessfully)
            {
                var userInfo = result.UserInfo;

                AppUser appUser = new AppUser
                {
                    Email             = userInfo.Email,
                    social_id         = userInfo.UserId,
                    auth_via          = result.ProviderName,
                    UserName          = userInfo.Email,
                    LockoutEnabled    = true,
                    LockoutEndDateUtc = DateTime.Now.AddHours(7)
                };

                if (!CheckExistOAuthUser(result))
                {
                    var resultIdentity = UserManager.Create(appUser);
                }

                //SignInManager.SignIn(appUser, true, true);

                return(RedirectToAction("Index", "Home"));
            }
            return(View());
        }
コード例 #5
0
        public void btnGoogleLogin_Click(Object sender,
                                         EventArgs e)
        {
            SocialAPI socialApi = new SocialAPI();

            OAuthWeb.RedirectToAuthorization("google", socialApi.RedirectURL + "?provider=google");
        }
コード例 #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var result = OAuthWeb.VerifyAuthorization();

            if (result.IsSuccessfully)
            {
                Session["AccessToken"] = result.AccessTokenValue;
                var existingUser = UserDAO.GetUserByIdentifier(result.UserInfo.Email);

                if (existingUser == null)
                {
                    User newUser = new User();
                    newUser.EmailAddress = result.UserInfo.Email;
                    newUser.Username     = ((newUser.EmailAddress).Split('@'))[0];
                    newUser.ProfileImage = result.UserInfo.Userpic;
                    newUser.Name         = result.UserInfo.FirstName;
                    newUser.IsGoogleUser = true;
                    UserDAO.AddGoogleUser(newUser);

                    newUser.ToggleLoginStatus(true);
                    Session["currentUser"] = newUser;
                }
                else
                {
                    existingUser.ToggleLoginStatus(true);
                    Session["currentUser"] = existingUser;
                }

                Response.Redirect("/Redirect.aspx");
            }
            else
            {
                Response.Write("Error: " + result.ErrorInfo.Message);
            }
        }
コード例 #7
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            var btn = (Button)sender;

            // build callback url
            string returnUrl = new Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri;

            // redirect to authorization page
            OAuthWeb.RedirectToAuthorization("dropbox", returnUrl);
        }
コード例 #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var result = OAuthWeb.VerifyAuthorization();

            if (result.IsSuccessfully)
            {
                var user = result.UserInfo;
                auth_success(user);
            }
        }
コード例 #9
0
        protected void RedirectToLogin_Click(object sender, EventArgs e)
        {
            // gets a provider name from the data-provider
            string provider = ((LinkButton)sender).Attributes["data-provider"];
            // build the return address
            string returnUrl = new Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri;

            //
            // redirect user into external site for authorization
            OAuthWeb.RedirectToAuthorization(provider, returnUrl);
        }
コード例 #10
0
        public ActionResult OAuthLogin(string provider)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Home"));
            }

            string returnUrl = Url.Action("OAuthRegister", "Account", null, null, Request.Url.Host);

            return(Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl)));
        }
コード例 #11
0
 //http://kbyte.ru/ru/Programming/Articles.aspx?id=82&mode=art Nemiro.OAuth
 public ActionResult Vk(string provider = "VK")
 {
     try
     {
         OAuthManager.RegisterClient(new VkontakteClient("", ""));
         string returnUrl = Url.Action("ExternalLoginResult", "Auth", null, null, Request.Url.Host);
         return(Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl)));
     }
     catch {
         string returnUrl = Url.Action("ExternalLoginResult", "Auth", null, null, Request.Url.Host);
         return(Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl)));
     }
 }
コード例 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var result = OAuthWeb.VerifyAuthorization();

            if (result.IsSuccessfully)
            {
                Session["AccessToken"] = result.AccessTokenValue;
                Response.Redirect("~/", true); // to home
            }
            else
            {
                Response.Write("Error: " + result.ErrorInfo.Message);
            }
        }
コード例 #13
0
        /// <summary>
        /// Redirect to login
        /// </summary>
        /// <param name="provider">Provider name. For example: facebook, twitter, google etc.</param>
        public ActionResult ExternalLogin(string provider)
        {
            // build callback url
            string returnUrl = Url.Action("ExternalLoginResult", "Home", null, null, Request.Url.Host);

            // not suppored localhost (it is only for localhost)
            string[] notSupportedLocalhost = { "live", "mail.ru", "github" };
            if (notSupportedLocalhost.Any(itm => itm.Equals(provider, StringComparison.OrdinalIgnoreCase)))
            {
                returnUrl = String.Format("http://oauth.nemiro.net/oauth_redirect.html?returnUrl={0}", Server.UrlEncode(returnUrl));
            }
            // --

            // redirect to authorization page of the specified provider
            return(Redirect(OAuthWeb.GetAuthorizationUrl(provider, returnUrl)));
        }
コード例 #14
0
        public RedirectToRouteResult ExternalLoginResult()
        {
            AuthorizationResult result = OAuthWeb.VerifyAuthorization();
            UserInfo            _user  = result.UserInfo;
            User user = new User();

            user.phone           = _user.Phone;
            user.sex             = _user.Sex.ToString();
            user.login           = _user.FirstName.ToString() + "Vk";
            user.picture         = _user.Userpic;
            user.email           = _user.Email.ToString();
            user.password        = _user.UserId.ToString();
            user.validationEmail = true;
            UserService.InserNew(user);
            return(RedirectToAction("Index", "Account"));
        }
コード例 #15
0
ファイル: Site.Master.cs プロジェクト: jpseoane/MiBar
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                var result = OAuthWeb.VerifyAuthorization();

                if (result.IsSuccessfully)
                {
                }
                //else
                //{
                //    // error
                //    Response.Write(result.ErrorInfo.Message);
                //}
            }
        }
コード例 #16
0
        private void Yandexweb_LoadCompleted(object sender, NavigationEventArgs e)
        {
            if (Internet.IsConnectedToInternet())
            {
                // ожидаем, когда появится адрес с результатами авторизации
                if (e.Uri.Query.IndexOf("code=") != -1 || e.Uri.Fragment.IndexOf("code=") != -1 || e.Uri.Query.IndexOf("oauth_verifier=") != -1)
                {
                    // проверяем адрес
                    AuthorizationResult result = OAuthWeb.VerifyAuthorization(e.Uri.ToString());
                    if (result.IsSuccessfully)
                    {
                        logger.Info("Успешная проверка авторизации");
                        //показываем данные пользователя
                        Settings.Default.token = result.AccessToken;
                        Settings.Default.Save();

                        if (Settings.Default.authorizeclose)
                        {
                            DialogResult = true;
                            this.Close();
                        }
                    }
                    else
                    {
                        logger.Error(result.ErrorInfo.Message);
                    }
                }
                else if (e.Uri.AbsoluteUri == "https://yandex.by/?nr=17961")
                {
                    yandexweb.Navigate(source: OAuthWeb.GetAuthorizationUrl("Yandex"));
                }
                else
                {
                    logger.Fatal("Ошибка авторизации. Не удается получить URL. Приложение будет закрыто.");
                    Environment.Exit(-1);
                }
            }
            else
            {
                logger.Fatal("Отсутствует интернет соединение.");
                logger.Fatal("Приложение будет закрыто.");
                DialogResult = false;
                this.Close();

                Environment.Exit(-1);
            }
        }
コード例 #17
0
        private void Yandexauthwindow_Loaded(object sender, RoutedEventArgs e)
        {
            var client = new YandexClient
                         (
                "ef69cea3cf4946d0b00dec064f1b26ee",
                "9446b005f22f4a5592b5a78d250551d2"
                         );

            if (!OAuthManager.IsRegisteredClient("Yandex"))
            {
                OAuthManager.RegisterClient
                (
                    client
                );
            }

            yandexweb.Navigate(source: OAuthWeb.GetAuthorizationUrl("Yandex"));
        }
コード例 #18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            preResult.InnerHtml = "";
            var result = OAuthWeb.VerifyAuthorization();

            preResult.InnerHtml += String.Format("Provider: {0}<br />", result.ProviderName);
            if (result.IsSuccessfully)
            {
                var user = result.UserInfo;
                preResult.InnerHtml += String.Format("User ID:  {0}<br />", user.UserId);
                preResult.InnerHtml += String.Format("Name:     {0}<br />", user.DisplayName);
                preResult.InnerHtml += String.Format("Email:    {0}", user.Email);
            }
            else
            {
                preResult.InnerHtml += result.ErrorInfo.Message;
            }
        }
コード例 #19
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         var result = OAuthWeb.VerifyAuthorization();
         if (result.IsSuccessfully)
         {
             // successfully
             var user = result.UserInfo;
             CreateAndLoginUser(user.UserName, user.Email);
         }
         else
         {
             // error
             Response.Write(result.ErrorInfo.Message);
         }
     }
 }
コード例 #20
0
        protected void RedirectToLogin_Click(object sender, EventArgs e)
        {
            // get provider name
            string provider = ((LinkButton)sender).Attributes["data-provider"];

            // build callback url
            string returnUrl = new Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri;

            // not suppored localhost (it is only for localhost)
            string[] notSupportedLocalhost = { "live", "mail.ru", "github" };
            if (notSupportedLocalhost.Any(itm => itm.Equals(provider, StringComparison.OrdinalIgnoreCase)))
            {
                returnUrl = String.Format("http://oauth.nemiro.net/oauth_redirect.html?returnUrl={0}", Server.UrlEncode(returnUrl));
            }
            // --

            // redirect to authorization page of the specified provider
            OAuthWeb.RedirectToAuthorization(provider, returnUrl);
        }
コード例 #21
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         var result = OAuthWeb.VerifyAuthorization();
         Response.Write(String.Format("Provider: {0}<br />", result.ProviderName));
         if (result.IsSuccessfully)
         {
             // successfully
             var user = result.UserInfo;
             Response.Write(String.Format("User ID:  {0}<br />", user.UserId));
             Response.Write(String.Format("Name:     {0}<br />", user.DisplayName));
             Response.Write(String.Format("Email:    {0}", user.Email));
         }
         else
         {
             // error
             Response.Write(result.ErrorInfo.Message);
         }
     }
 }
コード例 #22
0
ファイル: Form2.cs プロジェクト: zappysys/nemiro.oauth.dll
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            // waiting for results
            if (e.Url.Query.IndexOf("code=") != -1 || e.Url.Fragment.IndexOf("code=") != -1 || e.Url.Query.IndexOf("oauth_verifier=") != -1)
            {
                // is the result, verify
                var result = OAuthWeb.VerifyAuthorization(e.Url.ToString());
                if (result.IsSuccessfully)
                {
                    // show user info
                    MessageBox.Show
                    (
                        String.Format
                        (
                            "User ID: {0}\r\nUsername: {1}\r\nDisplay Name: {2}\r\nE-Mail: {3}",
                            result.UserInfo.UserId,
                            result.UserInfo.UserName,
                            result.UserInfo.DisplayName ?? result.UserInfo.FullName,
                            result.UserInfo.Email
                        ),
                        "Successfully",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information
                    );

                    // using access token for API request
                    // (this small example for vkontakte only)
                    if (result.ProviderName.Equals("vk", StringComparison.OrdinalIgnoreCase))
                    {
                        new VkontakteFriends(result.AccessTokenValue).ShowDialog();
                    }
                }
                else
                {
                    // show error message
                    MessageBox.Show(result.ErrorInfo.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                this.Close();
            }
        }
コード例 #23
0
        protected void OAuthButton_Click(object sender, ImageClickEventArgs e)
        {
            string provider = "";
            string id       = (sender as ImageButton).ID;

            switch (id)
            {
            case "VkOAuthButton":
                provider = "vk";
                break;

            case "GgOAuthButton":
                provider = "google";
                break;

            case "FbOAuthButton":
                provider = "facebook";
                break;
            }

            OAuthWeb.RedirectToAuthorization(provider, Request.Url.AbsoluteUri);
        }
コード例 #24
0
        public void OAuthChecking()
        {
            var result = OAuthWeb.VerifyAuthorization();
            var user   = result.UserInfo;

            if (result.IsSuccessfully)
            {
                LoginError.Text = "Succes";
                var member = Membership.GetUserNameByEmail(user.Email);
                if (member == null)
                {
                    string newPass   = Membership.GeneratePassword(10, 0);
                    string valResult = ServerRegistrationValidation(user.Email, result.UserName, newPass);
                    if (valResult == "Ok" || valResult[0] == 'Н')
                    {
                        Membership.CreateUser(result.UserName, newPass, user.Email);
                        // Roles.AddUserToRole(result.UserName, "User");
                        string url = user.Url;
                        if (result.ClientName == "vk")
                        {
                            url = "https://vk.com/id" + result.UserId;
                        }
                        if (result.ClientName == "gg")
                        {
                            url = "https://plus.google.com/" + result.UserId;
                        }
                        CreateWaifuUser(result.UserName, user.Userpic, url, user.FullName);
                        SmtpHelper.SendPassword(user.Email, newPass, result.UserName);
                    }
                }
                if (member == null)
                {
                    member = Membership.GetUserNameByEmail(user.Email);
                }
                FormsAuthentication.RedirectFromLoginPage(member, true);
                Response.End();
            }
        }
コード例 #25
0
        void mvWebBrowser_LoadCompleted(object sender, NavigationEventArgs e)
        {
            try
            {
                AuthorizationResult result      = OAuthWeb.VerifyAuthorizationAndRemoveRequest(e.Uri.ToString());
                IList <string>      resultItems = new List <string>();

                RequestResult request = null;

                if (e.Uri.Query.IndexOf("code=") != -1 || e.Uri.Fragment.IndexOf("code=") != -1 || e.Uri.Query.IndexOf("oauth_verifier=") != -1)
                {
                    if (result.IsSuccessfully)
                    {
                        //MessageBox.Show("my name: " + result.UserInfo.FullName);

                        request = GetDialogsRequest(result);
                        foreach (UniValue item in request["response"])
                        {
                            if (item.ContainsKey("body"))
                            {
                                //message = String.Format("{0} | {1}", item["uid"], item["body"]);
                                var message = String.Format("{0} | {1}", GetUserInfoRequest(item), item["body"]);

                                Messages.Add(message);
                            }
                        }

                        //request = SendMessageRequest(result);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #26
0
ファイル: Form2.cs プロジェクト: zappysys/nemiro.oauth.dll
 public Form2(string providerName)
 {
     InitializeComponent();
     webBrowser1.ScriptErrorsSuppressed = true;
     webBrowser1.Navigate(OAuthWeb.GetAuthorizationUrl(providerName));
 }
コード例 #27
0
 private void Changeprofile_bt_Click(object sender, RoutedEventArgs e)
 {
     yandexweb.Navigate(source: OAuthWeb.GetAuthorizationUrl("Yandex"));
 }
コード例 #28
0
 private void OnStartCommand()
 {
     WebBrowser.Navigate(OAuthWeb.GetAuthorizationUrl("VK"));
 }
コード例 #29
0
 /// <summary>
 /// Login result
 /// </summary>
 public ActionResult ExternalLoginResult()
 {
     return(View(OAuthWeb.VerifyAuthorization()));
 }
コード例 #30
0
 public Form2(string providerName)
 {
     InitializeComponent();
     webBrowser1.Navigate(OAuthWeb.GetAuthorizationUrl(providerName));
 }