关于MemerberShip角色的使用
1. 常用函数:
1) Membership.CreateUser(用户名,密码)
2) 判断用户是否被锁定:User.IsLockedOut()
3) 判断用户是否为某种角色:Roles.IsUserInRole(用户名,角色名)
4) 将某一用户添加到某一角色中:Roles.AddToRole(用户,角色)
5) 将用户从某一角色中移除:Roles.RemoveUserFromRole(用户名,角色)
还有其他很多,这里就不一一列举了,大家可以去MSDN上查。
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
namespace MvcApplication1.Controllers
{
public class AdminController : Controller
{
//
// GET: /Admin/
public ActionResult Index()
{
var p = Membership.GetAllUsers();
return View(p);
}
[HttpGet]
public ActionResult Create()
{
var p =Roles.GetAllRoles();
ViewBag.Roles = new SelectList(p);
return View();
}
[HttpPost]
public ActionResult Create(FormCollection collection)
{
string username = Request.Form["UserName"];
string password = Request.Form["PassWord"];
string roles = Request.Form["Roles"];
Membership.CreateUser(username,password);
Roles.AddUserToRole(username,roles);
var p = Membership.GetAllUsers();
return View("Index",p);
}
[HttpGet]
public ActionResult Edit(string id)//修改密码
{
TempData["username"] =id;
return View();
}
[HttpPost]
public ActionResult Edit(string id,FormCollection collection)
{
string oldpassword;
string newpassword=Request.Form["NewPassWord"];
string username = TempData["username"].ToString();
var p = Membership.FindUsersByName(username);
foreach (MembershipUser item in p)
{
item.UnlockUser();
oldpassword=item.ResetPassword();
item.ChangePassword(oldpassword,newpassword);
}
var q= Membership.GetAllUsers();
return View("Index", q);
}
public ActionResult Delete( string id)
{
var p = Membership.FindUsersByName(id);
foreach (MembershipUser item in p)
{
string r;
if (Roles.IsUserInRole(id, "Admin"))
{
r = "Admin";
}
else
{
r = "Guest";
}
Roles.RemoveUserFromRole(id,r);
Membership.DeleteUser(id);
}
var q = Membership.GetAllUsers();
return View("Index", q);
}
}
}
后台页面:
Index:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MembershipUserCollection>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<p>
<%: Html.ActionLink("CreateNew", "Create","Admin") %>
</p>
<table>
<tr>
<th></th>
<th></th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.ActionLink("修改密码", "Edit", new { id=((MembershipUser)item).UserName })%> |
<%: Html.ActionLink("删除", "Delete", new { id=((MembershipUser)item).UserName })%> |
</td>
<td>
<%:((MembershipUser)item).UserName %>
</td>
</tr>
<% } %>
</table>
</asp:Content>
Edit:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
密码修改
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%using(Html.BeginForm()) %>
<%{ %>
新密码:<input type="text" name="NewPassWord" />
<input type="submit" value="提交" />
<%} %>
</asp:Content>
Create:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
添加用户
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%using(Html.BeginForm()) %>
<%{ %>
用户名:<input type="text" name="UserName" /><br />
密 码:<input type="text" name="PassWord" /><br />
<%:Html.DropDownList("Roles",ViewBag.Roles as SelectList) %><br />
<input type="submit" value="提交" />
<%} %>
</asp:Content>