C# 在我的ASP.Net应用程序中定义不同的角色
我有一个类似于Craiglist类型的应用程序的网站 在我的数据库中,我应该创建一个名为UserRoles的表,并将UserRoleID作为外键分配给每个创建的用户吗?1个管理员(完全权限),2个版主,3个普通用户,等等 另外,在我的ASP.Net应用程序中,假设我有一个UserControl。在用户控件方法内部,我是否应该询问user.ID=“1”是否制作一个按钮X.Visible=True 假设当前登录的用户是管理员,则显示一个红色的X,以便管理员可以轻松删除列表,等等C# 在我的ASP.Net应用程序中定义不同的角色,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我有一个类似于Craiglist类型的应用程序的网站 在我的数据库中,我应该创建一个名为UserRoles的表,并将UserRoleID作为外键分配给每个创建的用户吗?1个管理员(完全权限),2个版主,3个普通用户,等等 另外,在我的ASP.Net应用程序中,假设我有一个UserControl。在用户控件方法内部,我是否应该询问user.ID=“1”是否制作一个按钮X.Visible=True 假设当前登录的用户是管理员,则显示一个红色的X,以便管理员可以轻松删除列表,等等 还是有一种更为成熟的
还是有一种更为成熟的方法可以做到这一点?您对角色提供者的总体概念是正确的。角色提供程序为用户提供一些级别(或者多个级别),然后在代码中,您可以在显示内容和评估输入时验证当前用户的级别
如果您正在使用自己的系统,那么您上面描述的是一种完全合理的方法。但是,如果您使用的是ASP.NET内置的和(您可能应该是!),那么就没有必要启动和运行它们。就个人而言,我会建议使用现有的供应商而不是重新发明轮子,但那只是我自己。您会发现,内置的提供者非常全面,使用起来也非常简单。粗略地说,您就是这样做的 您可能应该看看,因为它已经提供了大部分腿部工作来完成这项工作
而不是编写用户.RoIDID=1,在整个地方考虑编写一些方法/属性来回答这个问题。
e、 g 或 介绍了ASP.NET2.0。它使维护用户、角色和配置文件变得相当简单。我建议使用默认的SQL实现if(myuser.IsAdmin)
{
....
}
if(myuser.HasRightsTo(Rights.DoX))
{
....
}