제목 : 31.10.1. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewAddGroup.ascx.cs
    
    
        
            
                | 글번호: |  | 211 | 
            
                | 작성자: |  | 레드플러스 | 
            
                | 작성일: |  | 2007/07/05 오후 6:02:00 | 
            
            
                | 조회수: |  | 5956 | 
            
        
     
 
    
	
	
    
	using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;//
public partial class UserViewAddGroup : System.Web.UI.UserControl
{
  protected void Page_Load(object sender, EventArgs e)
  {
        if (!Page.IsPostBack)
        {
            DisplayData(); // 현재 사용자에 대한 그룹 리스트 출력    
        }
  }
    private void DisplayData()
    {
        GetGroupByUID(); // 포함된 그룹 리스트를 체크박스에 출력
        GetGroupNotInUse(); //포함되지않는 그룹을 드롭다운리스트에 출력
    }
    private void GetGroupNotInUse()
    {
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString = 
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        // 현재 접속자에 포함된 그룹 정보 읽어오기
        objCmd.CommandText = "GetGroupNotInUse";
        objCmd.CommandType = CommandType.StoredProcedure;//***
        objCmd.Parameters.AddWithValue("@UID", Request["UID"]);
        SqlDataReader objDr = objCmd.ExecuteReader();
        while (objDr.Read()) // 한명의 사용자가 여러개의 그룹 부여
        {
            // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
            ListItem li = new ListItem();
            li.Text = objDr["DomainID"].ToString()
                + "(" + objDr["Name"].ToString() + ")";
            li.Value = objDr["GroupUID"].ToString();
            this.lstGroupList.Items.Add(li);//하나의 항목 추가
        }
        objDr.Close();
        objCon.Close();
    }
    private void GetGroupByUID()
    {
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        // 현재 접속자에 포함된 그룹 정보 읽어오기
        objCmd.CommandText = @"
            Select GroupUID, Name, DomainID
            From Membership, Groups 
            Where 
                Membership.GroupUID = Groups.UID
                And
                Membership.UserUID = @UID
            Order By DomainID Asc
        ";
        objCmd.Parameters.AddWithValue("@UID", Request["UID"]);
        SqlDataReader objDr = objCmd.ExecuteReader();
        while (objDr.Read()) // 한명의 사용자가 여러개의 그룹 부여
        {
            // 체크박스 리스트에 추가할 하나의 항목(Item) 생성/값대입
            ListItem li = new ListItem();
            li.Text = objDr["DomainID"].ToString()
                + "(" + objDr["Name"].ToString() + ")";
            li.Value = objDr["GroupUID"].ToString();
            this.lstGroup.Items.Add(li);//하나의 항목 추가
        }
        objDr.Close();
        objCon.Close();
    }
    protected void btnDeleteGroup_Click(object sender, EventArgs e)
    {
        string strGroupUID = "0";
        foreach (ListItem li in lstGroup.Items)
        {
            if (li.Selected)
            {
                strGroupUID += ", " + li.Value;
            }
        }
        string strSql = @"Delete Membership 
            Where UserUID = @UserUID And GroupUID In(" + strGroupUID + ")";
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        objCmd.CommandText = strSql;
        objCmd.Parameters.AddWithValue("@UserUID", Request["UID"]);
        objCmd.ExecuteNonQuery();
        objCon.Close();
        // 현재 페이지 다시 로드
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]
            + "?UID=" + Request["UID"]);
    }
    protected void btnAddGroup_Click(object sender, EventArgs e)
    {
        // 현재 사용자에게 드롭다운리스트에서 선택한 그룹의 UID값을 추가
        string strSql = 
            @"Insert Membership(UserUID, GroupUID) 
                Values(@UserUID, @GroupUID)";
        SqlConnection objCon = new SqlConnection();
        objCon.ConnectionString =
            ConfigurationManager.ConnectionStrings[
                "ConnectionString"].ConnectionString;
        objCon.Open();
        SqlCommand objCmd = new SqlCommand();
        objCmd.Connection = objCon;
        objCmd.CommandText = strSql;
        objCmd.Parameters.AddWithValue("@UserUID", Request["UID"]);
        objCmd.Parameters.AddWithValue("@GroupUID",
            lstGroupList.SelectedValue);
        objCmd.ExecuteNonQuery();
        objCon.Close();
        // 현재 페이지 다시 로드
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]
            + "?UID=" + Request["UID"]);
    }
}
    
	
    
    
 
    
    
    
    
    
    
    
    
    
    
    
     
    
        