我的数据库表中有不同guid的行:
List<Paciente> myList = new ArrayList<Paciente>();
我想创建一组用户,这些用户可以使用某个guid查看新闻。我正在使用ASP.NET MVC模板和用户身份验证,但我无法理解我应该如何实现目标?我可以注册用户,我读过有关角色和过滤器的内容,但它没有帮助。
public class News
{
public int NewsId { get; set; }
public string title { get; set; }
public string description { get; set; }
public int guid { get; set; }
}
我应该以某种方式搜索如何在控制器方法中检索用户的id,而不是查询数据库并让用户组过滤新闻列表或者解决方案更容易?
另外,在Django中,我能够从prebuild管理面板控制用户,ASP.NET MVC类似的东西,或者我应该为此创建自己的控制器?如果我想为不同的用户过滤内容,我需要以某种方式将用户添加到组/(给他们角色)。
答案 0 :(得分:1)
使用你的控制器的用户属性。
答案 1 :(得分:0)
有几种方法可以实现这一点,这是我的版本。
GetNews()
方法应该只负责获取新消息并返回Actionresult
。不应在此方法SOLID
至于控制谁应该有权访问GetNews()
,您可以从应用中已实现的身份验证逻辑中受益。
属性[Authorize]
仅允许访问经过身份验证的用户以使用您的方法。通过扩展功能,尝试添加基于角色的逻辑。像[Authorize(Roles = "NewsMembers")]
奖金
添加角色的示例代码:
private void AddRole(String roleName)
{
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var role = new IdentityRole();
role.Name = roleName;
roleManager.Create(role);
}
向用户添加角色的示例代码
public void addRoleToUser(string UserId,string roleName)
{
var context = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
userManager.AddToRole(UserId,roleName);
userManager.Dispose();
userStore.Dispose();
}