我需要所有专家的指导,以完成一项简单的任务。 我正在研究我的最后一年项目,这是一个基于Web的应用程序。 在这个应用程序中,我必须创建几个用户,这些用户将执行不同的操作,例如,会计将管理费用,管理员将管理教师和学生帐户等。 我正在努力工作,我学会了简单的身份验证。 我可以根据用户名授权用户,并允许他们访问特定页面或具有多个页面的特定文件夹。 我这样做是通过使用表单身份验证。 但 现在我想创建用户角色并为不同的用户分配不同的角色,这样我就不必在web配置文件中添加每个用户名。 请建议我最简单的方法。是否有任何书籍,文章或youtube视频,我可以从中学习它? 我搜索了堆栈溢出和msdn,但我无法理解。 我在等你的建议, 提前致谢。 我也不是在MVC工作。 我正在使用.net 4.5,visual studio 2012和sql server 2014
答案 0 :(得分:0)
您可以通过以下方式将角色附加到您的用户: 在globl.asax中添加以下事件,读取要分配给已登录用户的角色,创建新的GenericPincipal并将其分配给用户。
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
var app = (HttpApplication) sender;
var ctx = app.Context;
if (ctx.User != null)
{
//Read the roles from database for current user, create a new Principal, attach the principal to the user (im using EF)
using (var context = new BackendDbContext())
{
var user = context.Set<User>().Find(Convert.ToInt32(ctx.User.Identity.Name));
var identity = new GenericIdentity(user.UserId.ToString());
var principal = new GenericPrincipal(
identity,
new[] {user.UserRoleId.ToString()});
ctx.User = principal;
}
}
}