我计划开发一个带有Entity Framewok 的 asp.net mvc 4(和simplemembership)网站,该网站将处理多个用户。用户具有可以发布或编辑的页面,如Facebook个人资料页面。而我希望其他用户也可以在此页面上查看和发布,但不会再次编辑这些帖子,比如facebook。
我现在正在寻找一些关于如何做的信息,但我什么都没发现。我是asp.net的新手,我不知道所有的手段。角色似乎没有处理这种行为。有没有办法做一些事情,比如,在我的控制器中,我可以做一些事情,比如当我创建帖子时,我说登录的用户是所有者,只是他可以删除这个帖子,但所有其他人都可以看到它。但是,我仍然不知道如何为每个用户提供他的个人资料页面。
我接受所有建议,链接到tuto或文章,反思,想法...... (对不起,我的英语不好) 谢谢
答案 0 :(得分:0)
您可以使用simplemembership查找当前登录的用户,如下所示:
User.Identity.Name
要获取当前用户,您可以查询您的存储库,例如:
var currentUser = db.UserProfiles.Where(u => u.UserName.Equals(User.Identity.Name)).Single();
EDIT2:错过了将我的模型中的字段更改为您的字段,已修复
根据您的评论,我将尝试使用MVC4中的标准Scaffolded 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");
}
}
}