Example #1
0
        protected MemberSocialNetwork GetMemberSocialNetwork()
        {
            MemberSocialNetwork _memberNetwork = new MemberSocialNetwork();

            Connection _connection =
                new Connection
                (
                    System.Configuration.ConfigurationManager.AppSettings["ssoAPIUrl"],
                    System.Configuration.ConfigurationManager.AppSettings["ssoAPIMemberName"],
                    System.Configuration.ConfigurationManager.AppSettings["ssoAPIMemberToken"]
                );

            MemberSocialNetworks.Connection = _connection;
            return(MemberSocialNetworks.GetMemberSocialNetworksBySignInEmail(User.Identity.Name));
        }
        public ActionResult AuthTwitter()
        {
            // http://stackoverflow.com/questions/3599621/is-there-a-way-to-get-an-users-email-id-after-verifying-her-twitter-identity-us
            TwitterConsumer.TwitterConsumerKey = AppSession.Parameters.SocialTwitterConsumerKey.Value;
            TwitterConsumer.TwitterConsumerSecret = AppSession.Parameters.SocialTwitterConsumerSecret.Value;

            String RedirectTo = "";

            if (TwitterConsumer.IsTwitterConsumerConfigured)
            {
                string screenName;
                int userId;
                string AccessToken;
                if (TwitterConsumer.TryFinishSignInWithTwitter(out screenName, out userId, out AccessToken))
                {
                    // In a real app, the Twitter username would likely be used
                    // to log the user into the application.
                    String memberName = String.Format("{0}@twitter.com",screenName);
                    Member member = Members.GetByEmail(memberName);

                    if (member.MemberID <= 0)
                    {
                        member.Name = screenName;
                        member.Email = memberName;
                        member.Password = StringTool.RandomString(24);
                        member.TimeZoneID = "";
                        member.Save();

                        MemberSocialNetwork memberNetwork = new MemberSocialNetwork();
                        memberNetwork.MemberID = member.MemberID;
                        memberNetwork.SocialNetworkID = 2;
                        memberNetwork.SocialNetworkUserID = userId.ToString();
                        memberNetwork.SocialNetworkUserEmail = "";
                        memberNetwork.SocialNetworkUserName = screenName;
                        memberNetwork.AccessToken = AccessToken;
                        memberNetwork.Save();

                        if (member.MemberID > 0)
                        {
                            string[] RoleNames = AppParams.SocialTwitterRoles.Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (String RoleName in RoleNames)
                            {
                                Role role = Web.Admin.Logic.Collections.Roles.GetBy(RoleName.Trim());
                                if (role.RoleID > 0)
                                {
                                    MemberRole memberrole = new MemberRole();
                                    memberrole.MemberID = member.MemberID;
                                    memberrole.RoleID = role.RoleID;
                                    memberrole.Save();
                                }
                            }

                        }
                    }
                    else
                    {
                        member.UpdateLoginTime();

                        MemberSocialNetwork memberNetwork = MemberSocialNetworks.GetByMemberID(member.MemberID, 2, userId.ToString());

                        memberNetwork.SocialNetworkID = 2;
                        memberNetwork.SocialNetworkUserID = userId.ToString();
                        memberNetwork.SocialNetworkUserEmail = "";
                        memberNetwork.SocialNetworkUserName = screenName;
                        memberNetwork.AccessToken = AccessToken;

                        if (memberNetwork.MemberID <= 0)
                        {
                            memberNetwork.MemberID = member.MemberID;
                            memberNetwork.Save();
                        }
                        else
                            memberNetwork.UpdateAccessToken();
                    }

                    Domain _domain = Domains.GetByName(AppSession.SignUpDomain);
                    if (_domain.DomainID > 0)
                    {
                        MemberDomain _memberDomain = new MemberDomain();
                        _memberDomain.DomainID = _domain.DomainID;
                        _memberDomain.MemberID = member.MemberID;
                        _memberDomain.Save();
                    }

                    RedirectTo = SignInMember(memberName, member, false, "", "SSI via Twitter.");
                }
                else
                {
                    return TwitterConsumer.StartSignInWithTwitter(true).AsActionResultMvc5();
                }
            }

            return new RedirectResult(RedirectTo);
        }
        private ActionResult AuthFacebook()
        {
            // http://developers.facebook.com/docs/reference/api/user/
            // https://developers.facebook.com/docs/howtos/login/server-side-re-auth/
            String RedirectTo = "";

            IAuthorizationState authorization = AppSession.AppFacebookClient.ProcessUserAuthorization(Request);

            if (authorization == null)
            {
                // https://developers.facebook.com/docs/reference/login/#permissions
                var scope = new List<string>();
                scope.Add("email");
                scope.Add("user_likes");
                scope.Add("read_stream");
                scope.Add("user_online_presence");
                scope.Add("read_stream");

                // Kick off authorization request
                return AppSession.AppFacebookClient.PrepareRequestUserAuthorization().AsActionResultMvc5();
            }
            else
            {
                var request = WebRequest.Create("https://graph.facebook.com/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken) + "&fields=id,name,first_name,last_name,username,email,gender,locale,middle_name,timezone");
                using (var response = request.GetResponse())
                {
                    using (var responseStream = response.GetResponseStream())
                    {

                        var graph = FacebookGraph.Deserialize(responseStream);
                        var name = HttpUtility.HtmlEncode(graph.Name);
                        var firstName = HttpUtility.HtmlEncode(graph.FirstName);
                        var lastName = HttpUtility.HtmlEncode(graph.LastName);

                        // to log the user into the application.
                        String memberName = String.Format("{0}.{1}@facebook.com", firstName, lastName);
                        Member member = Members.GetByEmail(memberName);
                        if (member.MemberID <= 0)
                        {
                            member.Name = String.Format("{0} {1}", firstName, lastName);
                            member.Email = memberName;
                            member.Password = StringTool.RandomString(24);
                            member.TimeZoneID = "";
                            member.Save();

                            MemberSocialNetwork memberNetwork = new MemberSocialNetwork();
                            memberNetwork.MemberID = member.MemberID;
                            memberNetwork.SocialNetworkID = 1;
                            memberNetwork.SocialNetworkUserID = graph.Id.ToString();
                            //memberNetwork.SocialNetworkUserEmail = graph.Email;
                            memberNetwork.SocialNetworkUserName = member.Name;
                            memberNetwork.AccessToken = authorization.AccessToken;
                            memberNetwork.Save();

                            if (member.MemberID > 0)
                            {
                                string[] RoleNames = AppParams.SocialFacebookRoles.Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                                foreach (String RoleName in RoleNames)
                                {
                                    Role role = Web.Admin.Logic.Collections.Roles.GetBy(RoleName.Trim());
                                    if (role.RoleID > 0)
                                    {
                                        MemberRole memberrole = new MemberRole();
                                        memberrole.MemberID = member.MemberID;
                                        memberrole.RoleID = role.RoleID;
                                        memberrole.Save();
                                    }
                                }

                            }
                        }
                        else
                        {
                            member.UpdateLoginTime();

                            MemberSocialNetwork memberNetwork = MemberSocialNetworks.GetByMemberID(member.MemberID, 1, graph.Id.ToString());

                            memberNetwork.SocialNetworkID = 1;
                            memberNetwork.SocialNetworkUserID = graph.Id.ToString();
                            //memberNetwork.SocialNetworkUserEmail = graph.Email;
                            memberNetwork.SocialNetworkUserName = member.Name;
                            memberNetwork.AccessToken = authorization.AccessToken;

                            if (memberNetwork.MemberID <= 0)
                            {
                                memberNetwork.MemberID = member.MemberID;
                                memberNetwork.Save();
                            }
                            else
                                memberNetwork.UpdateAccessToken();
                        }

                        Domain _domain = Domains.GetByName(AppSession.SignUpDomain);
                        if (_domain.DomainID > 0)
                        {
                            MemberDomain _memberDomain = new MemberDomain();
                            _memberDomain.DomainID = _domain.DomainID;
                            _memberDomain.MemberID = member.MemberID;
                            _memberDomain.Save();
                        }

                        RedirectTo = SignInMember(memberName, member, false, "", "SSI via Facebook.");
                        return new RedirectResult(RedirectTo);
                    }
                }
            }

            // return new EmptyResult();
        }
Example #4
0
        public ActionResult ResetAvatarImage(long MemberID = 0)
        {
            RequestResultModel _model = new RequestResultModel();

            try
            {
                if (MemberID > 0 && MemberID == Profile.Member.MemberID && Profile.Member.Avatar != null && Profile.Member.Avatar.Length > 0)
                {
                    string Path = String.Format("{0}/{1}.jpg", Server.MapPath("~/Avatar"), Profile.Member.Avatar);
                    if (System.IO.File.Exists(Path))
                    {
                        System.IO.File.Delete(Path);
                    }

                    Profile.Member.Avatar = null;
                    Profile.Member.UpdateAvatar();
                }
                else if ((MemberID > 0 && MemberID != Profile.Member.MemberID && AppSession.IsMemberInAdminRole))
                {
                    Member Member = Members.GetBy(MemberID);
                    string Path   = String.Format("{0}/{1}.jpg", Server.MapPath("~/Avatar"), Member.Avatar);
                    if (System.IO.File.Exists(Path))
                    {
                        System.IO.File.Delete(Path);
                    }

                    Member.Avatar = null;
                    Member.UpdateAvatar();
                }

                _model.Title    = GetLabel("Account.Controller.Congrat");
                _model.InfoType = RequestResultInfoType.Success;
                _model.Message  = "Avatar image has been reset.";
            }
            catch (Exception ex)
            {
                _model.Title    = GetLabel("Account.Controller.Warning");
                _model.InfoType = RequestResultInfoType.ErrorOrDanger;
                _model.Message  = "Avatar image has noot been reset: " + ex.Message;
            }

            String Message = this.RenderPartialView(@"_RequestResultPageInLine", _model);
            String FileURL = Url.Content("~/Content/images/no-photo.png");

            MemberSocialNetwork _memberNetwork = MemberSocialNetworks.GetByMemberID(MemberID);

            if (_memberNetwork.MemberSocialNetworkID > 0 && _memberNetwork.SocialNetworkID == 1)
            {
                FileURL = String.Format("https://graph.facebook.com/{0}/picture?type=large", _memberNetwork.SocialNetworkUserID);
            }
            else if (_memberNetwork.MemberSocialNetworkID > 0 && _memberNetwork.SocialNetworkID == 2)
            {
                FileURL = String.Format("http://api.twitter.com/1/users/profile_image?screen_name={0}&size=bigger", _memberNetwork.SocialNetworkUserID);
            }
            ;

            return(Json(new
            {
                NotifyType = NotifyType.PageInline,
                Html = Message,
                FileURL = FileURL
            }, JsonRequestBehavior.AllowGet));
        }
        static void Main(string[] args)
        {
            Connection Connection =
                new Connection
                (
                    "http://*****:*****@demo.com",
                    "HYXMvDsQWhGhbShE7yS1"
                );

            Tools.Connection                = Connection;
            Roles.Connection                = Connection;
            Members.Connection              = Connection;
            AuditEvents.Connection          = Connection;
            AuditEventDatails.Connection    = Connection;
            MemberSocialNetworks.Connection = Connection;

            // General
            Console.WriteLine(Tools.Ping().Data);

            // Roles
            List <Role> _Roles = Roles.GetRoles();

            _Roles = Roles.GetMemberRoles(102);
            _Roles = Roles.GetMemberRoles("*****@*****.**");

            // Members
            List <Member> _Members = Members.GetMembers(new CollectionFilter()
            {
                CurrentPage = 1, ItemsPerPage = 30
            });

            _Members = Members.GetMembers(new CollectionFilter()
            {
                CurrentPage = 2, ItemsPerPage = 30
            });

            Member _Member = Members.GetMember(130);

            _Member = Members.GetMember("*****@*****.**");

            // Audit items
            List <AuditEvent> _Events = AuditEvents.GetEvents(new CollectionFilter()
            {
                CurrentPage = 1, ItemsPerPage = 30
            });

            _Events = AuditEvents.GetEvents(new CollectionFilter()
            {
                CurrentPage = 2, ItemsPerPage = 30
            });

            // Audit Item Details
            foreach (AuditEvent Event in _Events)
            {
                List <AuditEventDetail> _EventDetails = AuditEventDatails.GetEventDatails(Event.EventID);
            }


            MemberSocialNetwork _socilaNetwork = MemberSocialNetworks.GetMemberSocialNetworks(31);

            Console.WriteLine(_socilaNetwork.AccessToken);
            Console.ReadLine();
        }