0

我计划使用 Entity Framewok 开发一个 asp.net mvc 4(和 simplemembership)网站,它将处理多个用户。用户有一个页面,例如 facebook 个人资料页面,它可以发布或编辑。而且我希望其他用户也可以在此页面上查看和发布,但不能编辑这些帖子,就像 facebook 一样。

我现在正在寻找一个小时的一些关于如何做到这一点的信息,但我什么也没找到。我是 asp.net 的新手,我不知道所有的方法。角色似乎无法处理此类操作。有没有办法在我的控制器中做类似的事情,当我创建一个帖子时,我说登录用户是所有者,只有他可以删除这个帖子,但所有其他人都可以看到它。但是,我仍然不知道如何为每个用户做他的个人资料页面。

我接受所有的建议、tuto 或文章的链接、思考、想法……(抱歉我的英语不好)谢谢

4

1 回答 1

0

您可以使用 simplemembership 查找当前登录的用户,如下所示:

User.Identity.Name

要获取当前用户,您可以查询您的存储库,例如:

var currentUser = db.UserProfiles.Where(u => u.UserName.Equals(User.Identity.Name)).Single();

EDIT2:错过了将字段从我的模型更改为您的字段,已修复

根据您的评论,我将尝试使用 MVC4 中的标准脚手架 CRUD 删除方法编写一个小示例,并且假设 Post 模型具有 UserId 属性/字段:

 [HttpPost, ActionName("Delete")]
 public ActionResult DeleteConfirmed(int id) 
 {
     var currentUser = db.UserProfiles.Where(u => u.UserName.Equals(User.Identity.Name)).Single();
     Post post = db.Posts.Find(id);      
     if (post.UserId==currentUser.UserId)
     {
        {
          db.Posts.Remove(post);
          db.SaveChanges();
          return RedirectToAction("Index");
        }  
     }    
  }
于 2012-12-17T20:43:05.390 回答