제목 : 31.10.1. 회원 가입 : (관리자)회원에게 그룹 권한 설정 : UserViewAddGroup.ascx.cs
글번호:
|
|
211
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2007/07/05 오후 6:02:00
|
조회수:
|
|
4992
|
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"]);
}
}