Thành viên | Nội dung |
thien_loi
6 bài
| Hiện tại các phiên bản 5.x của dnn mình thấy có cho upload photo(avatar). Các bạn biêt cách nào để lấy avatar của user khi mình đã biết được userid hay username không? Tìm cả ngày rồi mà chưa làm được. Bạn nào biết chỉ mình với, cảm ơn nhiều.
|
thinhkq
5 bài
| Cái này đơn gian mà bạn Lúc trước, ngồi làm module MyProfileModule. Mình cứ tưởng mọi thứ xong rồi nên không test kĩ. Ai dè gần đây có bạn phát hiện ra vấn đề. Khi register 1 account mới, có property City. Cứ nghĩ rằng đưa giá trị vào UserInfo thì sẽ ok thôi. Ai dè lại phát hiện ra lỗi. UserInfo temp = new UserInfo(); temp.Username = tboxUserName.Text; temp.DisplayName = tboxDisplayName.Text; temp.Email = tboxEmail.Text; temp.FirstName =(tboxFirstName.Text.Length > 0)? tboxFirstName.Text:"FName"; temp.LastName = (tboxLastName.Text.Length > 0) ? tboxLastName.Text : "LName"; temp.PortalID = PortalId; temp.Membership.Password = tboxPassword.Text; temp.Profile.City = tboxCity.Text; DotNetNuke.Security.Membership.UserCreateStatus temp1 = UserController.CreateUser(ref temp); Thông tin city được đưa vào Profile. Rồi dùng hàm CreateUser để tạo. Đến khi dùng hàm để lấy thông tin user thì city lại bằng null. Kiểm tra table UserProfile thì thấy có dữ liệu mà. Điên cả đầu. T_T Kiểm tra lại table ProfilePropertyDefinition, thì mình thấy nó có đến 2 item cùng nói về property City, trong đó 1 cái thì PortalID bằng null, 1 cái thì bằng 0. Và kiểm tra kĩ thì thấy thông tin property city trong table UserProfile thì là của thằng có portalID bằng null. Hèn chi khi lấy thông tin user thì city bằng null. Sau 1 hồi mày mò nữa thì cũng tìm được cách giải quyết. Thêm vào đoạn code sau: DotNetNuke.Security.Membership.UserCreateStatus temp1 = UserController.CreateUser(ref temp); if (temp1 == DotNetNuke.Security.Membership.UserCreateStatus.Success) { lbError.Text = "User is created successfully"; UserInfo temp2 = UserController.GetUser(PortalId,temp.UserID,true); temp2.Profile.City = temp.Profile.City; UserController.UpdateUser(PortalId, temp2); Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.HomeTabId, "", "")); return true; } Tạo User. Nếu user thành công thì lấy thông tin user đó ra từ CSDL. Rồi cập nhật lại profile.city trước khi đưa lại vào CSDL. Thế là xong. Bạn cứ làm tương tự . Chúc bạn thành công
|
thien_loi
6 bài
| Thanks bạn nhiều nha! cái này hay quá.
|
|