我使用razor引擎创建了asp.net mvc4应用程序,我对这项技术不熟悉,并尝试找出一种在管理员登录后向管理员显示注册用户列表的方法.成员资格使用system.web.providers.谁能说 –
首先,如何使用实体框架为用户创建单独的角色
其次,如何获取并向管理员显示具有不同角色的所有注册用户的列表.
首先,如何使用实体框架为用户创建单独的角色
其次,如何获取并向管理员显示具有不同角色的所有注册用户的列表.
提前致谢.
问候
解决方法
[Authorize(Roles = "Admin")] public ActionResult Index() { using (var ctx = new UsersContext()) { return View(ctx.UserProfiles.ToList()); } }
并在视图中:
@using MvcApplication1.Models @model IEnumerable<UserProfile> @{ Layout = null; } <!DOCTYPE html> <html> <head> <Meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <h2>Users list</h2> <table> <thead> <tr> <th>id</th> <th>name</th> </tr> </thead> <tbody> @foreach (var user in Model) { <tr> <td>@user.UserId</td> <td>@user.UserName</td> </tr> } </tbody> </table> </body> </html>
当然,为了能够访问/ users / index控制器操作,您需要首先拥有用户和角色.只有Admin角色的用户才能调用它.
这是一个tutorial
,它解释了如何使用迁移来为某些帐户播种数据库.
以下是示例迁移配置的外观:
internal sealed class Configuration : DbMigrationsConfiguration<UsersContext> { public Configuration() { AutomaticMigrationsEnabled = true; } protected override void Seed(UsersContext context) { WebSecurity.InitializeDatabaseConnection( "DefaultConnection","UserProfile","UserId","UserName",autoCreateTables: true ); if (!Roles.RoleExists("Admin")) { Roles.CreateRole("Admin"); } if (!WebSecurity.UserExists("john")) { WebSecurity.CreateUserAndAccount("john","secret"); } if (!Roles.GetRolesForUser("john").Contains("Admin")) { Roles.AddUsersToRoles(new[] { "john" },new[] { "Admin" }); } } }