Beispiel #1
0
        public int AddUser(Membership.User user)
        {
            this.items.Add(user);

            // Try reverse search. This must be very fast since item is now probably
            // at the end of the list, unless ofcourse in heavy loads and concurrent
            // insertions
            int index = -1;
            int count = this.items.Count;

            for (int i = count - 1; i >= 0; i--)
            {
                if (this.items[i] == user)
                {
                    index = i;
                    break;
                }
            }

            if (index < 0)
            {
                index = this.items.IndexOf(user);
            }

            user.Index = index;
            return(index);
        }
Beispiel #2
0
        // Also loads a very minimum profile info that is required by
        // application to function properly
        internal static Membership.User GetUser(string email, string password)
        {
            Membership.User user  = null;
            string          query = "UserLogIn";

            try
            {
                using (SqlConnection cnn = new SqlConnection(Configurations.ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(query, cnn))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add(new SqlParameter("@EmailAddress", email));
                        cmd.Parameters.Add(new SqlParameter("@Password", password));
                        foreach (SqlParameter Parameter in cmd.Parameters)
                        {
                            if (Parameter.Value == null)
                            {
                                Parameter.Value = DBNull.Value;
                            }
                        }

                        cnn.Open();

                        SqlDataReader reader = cmd.ExecuteReader();
                        if (reader != null && reader.HasRows)
                        {
                            // Read first table: SoftwareProduct
                            if (reader.Read())
                            {
                                user = new Membership.User();
                                //Users.UserId, MembershipDate, IsApproved, IsLocked, Points, AppCulture, DisplayName
                                user.EmailAddress   = email;
                                user.Password       = password;
                                user.Id             = Utils.Convert.ToInt64(reader["UserId"]).Value;
                                user.MembershipDate = Utils.Convert.ToDateTime(reader["MembershipDate"]).Value;

                                user.Profile            = new Membership.UserProfile();
                                user.Profile.DislayName = Utils.Convert.ToString(reader["DisplayName"]);
                                user.Profile.Culture    = Utils.Convert.ToString(reader["AppCulture"]);

                                //user.Name = Utils.Convert.ToString(reader["UserName"]);
                                //user. = Utils.Convert.ToDateTime(reader["MembershipDate"]);
                                //user. = Utils.Convert.ToBool(reader["IsApproved"]);
                                //user. = Utils.Convert.ToBool(reader["IsLocked"]);
                            }
                        }

                        cnn.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("Exception:{0}", ex));
            }

            return(user);
        }
        public static void AuthenticateRequest(System.Web.HttpContext context, System.Web.HttpRequest request)
        {
            try
            {
                System.Web.HttpCookie authCookie = context.Request.Cookies[
                    System.Web.Security.FormsAuthentication.FormsCookieName];

                if (authCookie != null)
                {
                    System.Web.Security.FormsAuthenticationTicket authTicket =
                        System.Web.Security.FormsAuthentication.Decrypt(authCookie.Value);

                    // Extract data, find authenticated user and attach it to context
                    string[] userInfo = authTicket.UserData.Split('|');
                    if (userInfo.Length == 2)
                    {
                        int             index = Convert.ToInt32(userInfo[0]);
                        Membership.User user  = Repository.Memory.Users.Instance.GetUser(index);
                        if (user != null && user.Id > 0 && Convert.ToInt32(userInfo[1]) == user.Id)
                        {
                            user.Identitiy.Ticket = authTicket;

                            context.User = user;
                            System.Threading.Thread.CurrentPrincipal = user;
                        }
                        else
                        {
                            // Cookie sucks
                            authCookie.Expires = DateTime.UtcNow.AddYears(-1);
                            context.Request.Cookies.Add(authCookie);
                            context.Response.Cookies.Add(authCookie);
                            SignOut();

                            context.User = new DomainModel.Membership.AnonymousUser();
                            System.Threading.Thread.CurrentPrincipal = context.User;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("Exception:{0}", ex.ToString()));
            }
        }