Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在我的ASP.Net应用程序中定义不同的角色_C#_Asp.net_Sql_Sql Server - Fatal编程技术网

C# 在我的ASP.Net应用程序中定义不同的角色

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,以便管理员可以轻松删除列表,等等 还是有一种更为成熟的

我有一个类似于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))
{
  ....
}