PDA

View Full Version : حذف و غیر فعال نمودن کاربران سایت و رول آنها توسط دات نت



safa.net
شنبه 27 مهر 1392, 17:00 عصر
سلام
کسی هست بدونه چطور میشه کاربران سایت رو غیر فعال و یا حذف کرد؟
میخواهم کاربران در یک لیست یاکس نمایش داده شوند و پس از انتخاب آنها را حذف یا غیر فعال کنم.

با تشکر

safa.net
یک شنبه 28 مهر 1392, 12:02 عصر
لطفا به این سوال پاسخ دهید

mohammad973
یک شنبه 28 مهر 1392, 14:18 عصر
دوست عزیز ، سوالت کمی کلیه .
کافیه به msdn یه سری بزنی تا اونچیزی که میخوای رو پیدا کنی .
http://msdn.microsoft.com/en-us/library/system.web.security.roles.aspx

وقتی توی لیست میریزی ، روی هر کاربری که میخوای کلیک میکنی . حالا توی رویداد لیست ، نام کاربر رو داری . به راحتی میتونی با چندتا خط کد ساده کارتو انجام بدی .
مثلا یوزرنیم ali مال Role ای به نام Member هست . حالا :


RemoveUserFromRole("ali","Member")


توی این صفحه ، مثالی آورده که دقیقا این کارو با استفاده از لیست باکس انجام میده . مطالعه اش کنی ، ضرر نمیکنی .
http://msdn.microsoft.com/en-us/library/system.web.security.roles.removeuserfromrole.aspx


برای فعال / غیرفعال کردن ::

MembershipUser member = Membership.GetUser("ali");
member.IsApproved = true; //Or False
Membership.UpdateUser(member);


در واقع IsApproved چک میکنه که کاربر اجازه فعالیت داره یا نه (اجازه ورود به حساب کاربریش) . بعد از اینکه مقدار اون رو تغییر دادی ، باید یوزرت رو آپدیت کنی تا تغییرات اعمال بشه.
راه دیگه ، استفاده از ASP.NET Web Configuration هست که هنگام Edite کردن یک User میتونی علامت تیک Activate رو تغییر بدی و تغییرات رو ذخیره کنی .

برای حذف یک Role ، کار(یا کاربرانی) از Role (یا Role هایی) ، کار خیلی خیلی ساده ست !! کافیه متدهای موجود توی آدرسی که اول دادم رو نگاهی بندازی.
یا علی .

safa.net
یک شنبه 28 مهر 1392, 17:13 عصر
از زاهنمایی شما ممنون
اگه یک مثال پروژه ای بزنید ممنون میشم چون من نتونستم پیاده سازیش کنم.

mohammad973
یک شنبه 28 مهر 1392, 17:33 عصر
دوست من ، اینجا که خودش کدهای یه پروژه رو گذاشته !!!



توی این صفحه ، مثالی آورده که دقیقا این کارو با استفاده از لیست باکس انجام میده . مطالعه اش کنی ، ضرر نمیکنی .
http://msdn.microsoft.com/en-us/libr...rfromrole.aspx (http://msdn.microsoft.com/en-us/library/system.web.security.roles.removeuserfromrole.aspx)
فقط کپی و پیست میخواد :



<%@ Page Language="C#‎" %>

<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.UI" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;
MembershipUserCollection users;
string[] usersInRole;

public void Page_Load()
{
Msg.Text = "";

if (!IsPostBack)
{
// Bind roles to ListBox.

rolesArray = Roles.GetAllRoles();
RolesListBox.DataSource = rolesArray;
RolesListBox.DataBind();

// Bind users to ListBox.

users = Membership.GetAllUsers();
UsersListBox.DataSource = users;
UsersListBox.DataBind();
}

if (RolesListBox.SelectedItem != null)
{
// Show users in role. Bind user list to GridView.

usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Val ue);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}
}


public void AddUsers_OnClick(object sender, EventArgs args)
{
// Verify that a role is selected.

if (RolesListBox.SelectedItem == null)
{
Msg.Text = "Please select a role.";
return;
}


// Verify that at least one user is selected.

if (UsersListBox.SelectedItem == null)
{
Msg.Text = "Please select one or more users.";
return;
}


// Create list of users to be added to the selected role.

string[] newusers = new string[UsersListBox.GetSelectedIndices().Length];

for (int i = 0; i < newusers.Length; i++)
{
newusers[i] = UsersListBox.Items[UsersListBox.GetSelectedIndices()[i]].Value;
}


// Add the users to the selected role.

try
{
Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value);

// Re-bind users in role to GridView.

usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Val ue);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}
catch (Exception e)
{
Msg.Text = e.Message;
}
}


public void UsersInRoleGrid_RemoveFromRole(object sender, GridViewCommandEventArgs args)
{
// Get the selected user name to remove.

int index = Convert.ToInt32(args.CommandArgument);

string username = ((DataBoundLiteralControl)UsersInRoleGrid.Rows[index].Cells[0].Controls[0]).Text;


// Remove the user from the selected role.

try
{
Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value);
}
catch (Exception e)
{
Msg.Text = "An exception of type " + e.GetType().ToString() +
" was encountered removing the user from the role.";
}


// Re-bind users in role to GridView.

usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Val ue);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}



</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Role Membership</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>
Role Membership</h3>
<asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td valign="top">
Roles:</td>
<td valign="top">
<asp:ListBox ID="RolesListBox" runat="server" Rows="8" AutoPostBack="true" /></td>
<td valign="top">
Users:</td>
<td valign="top">
<asp:ListBox ID="UsersListBox" DataTextField="Username" Rows="8" SelectionMode="Multiple"
runat="server" /></td>
<td valign="top">
<asp:Button Text="Add User(s) to Role" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td>
</tr>
<tr>
<td valign="top">
Users In Role:</td>
<td valign="top">
<asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false"
GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole">
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="User Name" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="Remove From Role" ButtonType="Link" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</form>
</body>
</html>


دیگه المان هایی مثل RolesListBox و UsersListBox و ... رو هم که خودت توی محیط دیزاین از Tools بکش بنداز توی صفحه اتو نامشو تصحیح کن . همین!

safa.net
یک شنبه 28 مهر 1392, 18:16 عصر
دوست عزیز این سورس فقط رول کاربر را پاک میکند من می خوام کلا کاربر را حذف کنم و یا غیر فعال کنم
لطفا اگه میتونید این کار رو با یک مثال عملی انجام بدید.

mohammad973
دوشنبه 29 مهر 1392, 01:46 صبح
عذر میخوام ، این چیه پس ؟



برای فعال / غیرفعال کردن ::

MembershipUser member = Membership.GetUser("ali");
member.IsApproved = true; //Or False
Membership.UpdateUser(member);




برای حذف هم کافیه از متد DeleteUser() مربوط به Membership استفاده کنی ؛ مثلا :


Membership.DeleteUser("ali");


پست ها رو دقیق بخون دوست من ؛ البته انتظار هم نباید داشته باشی چیزی رو که میخوایم ، دقیقا عین کدش رو براتون دوستان بگذارند ؛ خودتون هم باید تلاش کنید و از نمونه ها الگو بگیرید ، خلاقیت به خرج بدی و همچنین حوصله گشت و گذار توی فروم های منبع رو هم داشته باشی .
امیدوارم به کارت اومده باشه نمونه ها .
یا علی .

safa.net
دوشنبه 29 مهر 1392, 14:42 عصر
سلام
من این کدها رو نوشتم ولی درست اجرا نمیشن! میتونید اشکالش رو بگید.

protected void Button1_Click(object sender, EventArgs e)
{
try
{
Membership.DeleteUser(lstusers.SelectedItem.Text);
BindUsers();
lstusers.DataBind();
LOk.Visible = true;
}
catch { LNok.Visible = false; }
}
protected void BtnIs_Click(object sender, EventArgs e)
{
MembershipUser member = Membership.GetUser(lstusers.SelectedItem.Text);
member.IsApproved = true;
Membership.UpdateUser(member);
BindUsers();
lstusers.DataBind();
}
protected void BtnIsNot_Click(object sender, EventArgs e)
{
MembershipUser member = Membership.GetUser(lstusers.SelectedItem.Text);
member.IsApproved = false;
Membership.UpdateUser(member);
BindUsers();
lstusers.DataBind();
}

mohammad973
دوشنبه 29 مهر 1392, 22:05 عصر
خطایی که داده رو بگزارید

safa.net
دوشنبه 29 مهر 1392, 23:23 عصر
ظاهرا برنامه نمیتواند مقدارmember را در IsApproved که بولین است بریزد.
دوست گرامی اگر یک برنامه به عنوان نمونه بگذارید بهتر است دیگران هم استفاده می کنند. ظاهرا پست پر بازدیدی شده.

ممنون

mohammad973
سه شنبه 30 مهر 1392, 11:05 صبح
الان دسترسی ندارم ، فرصت شد حتما .