0

问题 1

我熟悉角色管理,特定角色中的特定成员可以执行此操作并在功能上访问它。我需要做的是管理个人用户,而不是他所在的角色。

例如,假设我创建了一个名为“Sales”的角色。我设置了销售人员可以做什么的角色权限。现在我想检查个人用户。例如,如果这是“john”,我想向他展示只有他创建的记录。如果他是彼得,我只想向他展示他创建的记录,而不是约翰或其他销售人员创建的记录。

我们可以使用 ASP.NET 中的“用户管理”吗?如果不是我们必须自己创建它,我相信与 ASP.NET“角色管理”的集成不会那么顺利。


问题 2。

我正在使用控件进行用户登录。我想在这个时候创建​​一个会话,这样我就可以跟踪哪个用户登录了,这样我就可以向他展示只与他有关的记录。我怎样才能做到这一点?

4

4 回答 4

1

此时,您的 Q1 并不是关于角色与用户管理(即:授权)。这是关于您的应用程序中的审计跟踪。

这样做的方式是捕获创建相关记录的用户的 ID 和记录,以便稍后您可以过滤该 ID。

伪数据库结构

Table Sales
    Field...
    Field...
    Field...
    CreatedByUser int not null, -- Populate this on creation and never change it again
    ModifiedByUser int not null - populate this on every row update including insert
于 2011-06-17T15:10:23.823 回答
1

请参阅ASP.NET 配置文件属性

假设数据库中的记录对应于用户的唯一 ID,您可以将唯一 ID 存储在每个用户的配置文件属性中。

于 2011-06-17T15:12:00.503 回答
0

您正在谈论身份验证和授权。对于问题 1,您并实施自定义授权提供程序以允许用户级别控制http://msdn.microsoft.com/en-us/library/aa479048.aspx 对于问题 2,一旦您登录并通过身份验证,会话包含自动包含信息的用户原则对象。

于 2011-06-17T15:13:29.940 回答
0

1)如果要按创建用户过滤记录,则需要在表中记录创建记录的用户的ID。您可以通过 访问当前用户的名称User.Identity.Name及其 ID(取决于提供者)User.ProviderUserKey

2) 会话是在 ASP.NET 中自动创建的,如果您有正确配置的 MembershipProvider,您可以使用User如上所示的对象检索所有需要的用户信息。

听起来您对 ASP.NET Membership 和 Roles 功能有点陌生,因为它们实际上设置得很好,可以完成您所描述的内容。我建议查看本教程系列:

http://www.4guysfromrolla.com/articles/120705-1.aspx

于 2011-06-17T15:16:44.053 回答