Tak*_*eam 8 c# asp.net asp.net-mvc-5
使用asp.net mvc5,我的用户管理系统似乎工作.我可以使用谷歌或名称/密码登录..
但现在我正在开发一个用户管理界面,我需要能够删除现有用户.这开始向我展示用户管理系统是多么令人困惑.有很多不同的方式来处理用户......其中一些不起作用.
我阅读的大多数地方,都在谈论使用Membership.DeleteUser().
但这不起作用......
用户创建了.
var user = new ApplicationUser()
{
UserName = model.UserName,
Email = model.Email,
ConfirmationToken = confirmationToken,
IsConfirmed = false
};
var result = await UserManager.CreateAsync(user, model.Password);
Run Code Online (Sandbox Code Playgroud)
现在稍后..如何删除这样的用户?(给出其名称或用户ID)
我已经尝试过在各种搜索中出现最多的东西..提出了会员资格作为解决方案.但这肯定不适合MVC5?例如
var allusers = Membership.GetAllUsers(); // allusers is empty
bool success = Membership.DeleteUser(model.name); // <-- success = false
Run Code Online (Sandbox Code Playgroud)
我可以让所有用户使用这种方法..
ApplicationDbContext db = new ApplicationDbContext();
foreach (var user in db.Users) { ... }
Run Code Online (Sandbox Code Playgroud)
我可以找到一个单独的用户..
ApplicationDbContext db = new ApplicationDbContext();
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
ApplicationUser user = um.FindById(model.userId);
Run Code Online (Sandbox Code Playgroud)
现在我该怎么删除一个呢?....
jpo*_*luk 17
更新
从Microsoft.AspNet.Identity版本2.0.0.0开始,您现在可以使用Identity删除用户UserManager.Delete(user);
.
为了后人
您指的是两个不同的东西,身份和成员资格.较新版本的ASP.NET支持Identity和Membership,而Identity是默认设置,而旧版本仅支持Membership(在这两个身份验证系统中).
使用时创建用户UserManager.CreateAsync
,您在Microsoft.AspNet.Identity
命名空间内执行此操作.当您尝试删除用户时Membership.DeleteUser
,您在System.Web.Security
命名空间内执行此操作.他们生活在两个不同的世界.
正如另一条评论所提到的,Identity尚未支持删除用户,但它是2014年春季发布路线图中的第一个项目.
但为什么要等?将另一个属性添加到ApplicationUser模型,如下所示:
public class ApplicationUser : IdentityUser
{
public string IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的控制器中删除用户:
user.IsActive = false;
Run Code Online (Sandbox Code Playgroud)
用户登录时进行检查:
if (user.IsActive == false)
{
ModelState.AddModelError(String.Empty, "That user has been deleted.");
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
当被删除的用户尝试重新注册时,而不是在注册页面上UserManager.Create
使用UserManager.Update
他们的新信息.
这些步骤将有效地删除用户.如果您确实必须从数据库中清除其信息,则可以使用Entity Framework直接执行此操作.
归档时间: |
|
查看次数: |
15431 次 |
最近记录: |