Cấp bậc tác giả:

DOTNET

Chuyển đổi user giữa các portal trong dnn

Được viết bởi sinh vien can tho ngày 09/08/2013 lúc 12:37 AM
Dotnetnuke là một frameword asp.net khá mạnh hiện nay, Nó cung cấp miễn phí cho người dùng và hổ trợ khá nhiều các module. Điểm khá hay của nó là hổ trợ theo cơ chế cổng thông tin (nhiều portal). Có nghĩa 1 cổng thông tin thì sẽ có nhiều cổng con, chung 1 database, giúp người dùng có thể tạo ra một cách nhanh chóng một hệ thống website khác một cách nhanh lẹ.
  • 0
  • 1633
Tải tệp tin: Click ở đây

Chuyển đổi user giữa các portal trong dnn


Dotnetnuke là một frameword asp.net khá mạnh hiện nay, Nó cung cấp miễn phí cho người dùng và hổ trợ khá nhiều các module. Điểm khá hay của nó là hổ trợ theo cơ chế cổng thông tin (nhiều portal). Có nghĩa 1 cổng thông tin thì sẽ có nhiều cổng con, chung 1 database, giúp người dùng có thể tạo ra một cách nhanh chóng một hệ thống website khác một cách nhanh lẹ.

Tuy nhiên việc chuyển đổi user giữa các portal khá khó khăn, và phải làm bằng thủ công. Hôm may mình sẽ hướng dẫn các bạn cách viết 1 tool để hổ trợ việc chuyển đổi qua lại giữa các portal.

Các table được sử dụng:

8-7-2013 4-52-19 PM

Hàm load các portal:

void LoadAllPortal()
        {
            var objPortal = (from p in context.dnn_PortalLocalizations
                             where p.CultureCode == "vi-VN"
                             select new
                             {
                                 Portal_ID = p.PortalID,
                                 Portal_Name = p.PortalName
                             }).ToList();
            drpAllPortal.DataSource = objPortal;
            drpAllPortal.DataTextField = "Portal_Name";
            drpAllPortal.DataValueField = "Portal_ID";
            ListItem it = new ListItem("Tất cả","-1");
  
            drpAllPortal.DataBind();
  
            drpAllPortal.Items.Insert(0, it);
  
        }

Hàm load User của portal:

void LoadUser()
        {
            int pPor = Convert.ToInt32(drpAllPortal.SelectedValue);
            var objUser = (from p in context.dnn_Users
                           join c in context.dnn_UserPortals on p.UserID equals c.UserId
                           where p.UserID != 1 && ((c.PortalId == pPor && c.Authorised == true) || pPor == -1)
                           orderby p.UserID ascending
                           select new
                           {
                               USER_ID = c.UserId,
                               USER_NAME = p.Username + " - " + p.DisplayName
                           }).Distinct().ToList();
            lstUser1.DataSource = objUser;
            lstUser1.DataTextField = "USER_NAME";
            lstUser1.DataValueField = "USER_ID";
            lstUser1.DataBind();
  
            lblTotalUser.Text = "Tổng User trên hệ thống website là:" + objUser.Count;
  
        }

Hàm cập nhật chuyển User:

protected void btnCapNhat_Click(object sender, EventArgs e)
        {
            int vPortalID = Convert.ToInt32(drpPortal.SelectedValue);
  
            var objUser = (from p in context.dnn_UserPortals
                           where p.PortalId == vPortalID
                           select p).ToList();
  
            foreach (ListItem it in lstUser2.Items) {
  
                if (CheckUserPortal(vPortalID, Convert.ToInt32(it.Value)) == 1)
                {
  
                    dnn_UserPortal objAddUserPortal = new dnn_UserPortal();
                    objAddUserPortal.PortalId = vPortalID;
                    objAddUserPortal.UserId = Convert.ToInt32(it.Value);
                    objAddUserPortal.CreatedDate = DateTime.Now.Date;
                    objAddUserPortal.Authorised = true;
  
                    context.dnn_UserPortals.InsertOnSubmit(objAddUserPortal);
  
                    DotNetNuke.Security.Roles.RoleInfo objRoleInfo = objRoleController.GetRoleByName(vPortalID, "Subscribers");
                    objRoleController.AddUserRole(objRoleInfo.PortalID, Convert.ToInt32(it.Value), objRoleInfo.RoleID, Convert.ToDateTime(null), Convert.ToDateTime(null));
                }
            }
            context.SubmitChanges();
            LoadAllPortal();
            LoadUser();
            LoadPortal();
            LoadUserPortal();
            Paint2List();
        }

Và cuối cùng là thành quả:

8-7-2013 4-51-23 PM

Như vậy là chúng ta có một tool chuyển user trên các portal.

Chúc các bạn thành công!

Nguồn bài viết: It Cần thơ

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML