我在vb .net应用程序中使用成员身份和角色进行身份验证。 我们在应用程序中大约有5个角色,其中某些角色填写了特定的配置文件值。 例如,角色是商店,配置文件值是商店编号。 显然,如果您在总部工作,则没有门店号码,所以我不在乎。 每个商店也可以拥有1名以上的员工。

我需要让用户获得特定的商店编号。 这意味着我只希望属于商店编号101的用户显示该列表。 现在,我们这样做的方式是遍历所有用户,并将符合条件的用户添加到排序列表中。 此功能起作用,但问题是当您开始传递大约3,000个用户时。 变得迟钝只会变得不好。

你们将如何找到另一种方式呢? 我真的不想做自定义存储过程或更改基础类,因为我担心这一切都会破坏更高版本的.net,因为它们会更改成员资格和角色。

===============>>#1 票数:1

这确实是您要在SQL中进行过滤的一种东西。 我认为没有任何技巧可以绕过数据的线性扫描并获得所需的结果。

如果无法在SQL中执行此操作,则可以避免创建第二个列表,而仅对主用户数组进行排序,并使显示内容仅显示您关注的列表。 这样至少可以节省内存复制时间。

===============>>#2 票数:0

您使用的是内置的.NET角色管理器,我可以将它保存到SQL Server实例中? 当前查看用户对象以评估标准时,用户对象的格式是什么? 如果您发布代码示例,我有个主意...

===============>>#3 票数:0

    Public Shared Function LoadALLUsersInRole(ByVal Code As Integer, ByVal Role As String) As ArrayList
        Dim pb As ProfileBase
        Dim usersArrayList As New ArrayList
        Dim i As Integer
        Dim AllUsersInRole() As String = Roles.GetUsersInRole(Role)

        For i = 0 To AllUsersInRole.Length - 1

            pb = ProfileBase.Create(AllUsersInRole(i), True)

            'Check to see if the current user in the collect belongs to this Store.
            If CType(pb.GetPropertyValue("Store.Code"), Integer) = Code Then                    
                    usersArrayList.Add(AllUsersInRole(i))                   
            End If
            pb = Nothing
        Next

        Return usersArrayList
    End Function

那是我如何做的示例代码。 我不想在SOL方面这样做的原因是,我将非常依赖成员资格和角色不变的事实。

  ask by Alfonso Pajares translate from so

未解决问题?本站智能推荐:

2回复

根据用户角色将用户重定向到登录页面

这似乎应该很简单,但是即使在搜寻stackoverflow之后我也无法弄清楚。 我有一个非常标准的登录控件: 以下是我的代码: 当前,即使我以SuperAdmin身份登录,我也始终会重定向到“〜”。 我确定我在错误的位置检查了“ IsInRole”,但我不知道在哪里做。
1回复

使用ASP.NET WebApi进行身份验证时返回用户的角色

我们正在使用ASP.NET Web应用程序和个人用户帐户来学习这个优秀的教程 。 要验证并获取承载令牌,我们发布以下内容: 正如所料,令牌提供程序返回: 这很好。 现在,我们如何向JSON响应添加角色属性?
1回复

NHibernate的经理用户帐户

我正在寻找NHibernate中的功能,以添加或删除当前数据库的用户帐户。 有内置功能吗? 还是我必须为每个数据库手动设置? 马克,非常感谢你
4回复

asp.net成员资格 - 如何以编程方式确定用户是否在角色中

确定用户是否在角色中的代码是什么? 我已经通过ASP.NET Configuration Security选项卡设置了所有用户,但现在想要在某些关键区域放置逻辑,这样只有某些角色的人才能看到和访问这些区域。
4回复

如何在ASP.NET中将用户与其各自的文件夹连接起来?

当userA上传文件时,他的文件将被上传到folderA,当userB,到folderB,等等。 ASP.NET中的角色/配置文件。 文件夹将预先存在。 任何人?
1回复

ASP.Net成员资格中的自定义用户属性/方法

我想将一些自定义实例属性添加到ASP.Net User对象。 例如,我想记录每个用户的登录名,并具有类似的内容: User.LoginTimes或计算用户配置文件的完成百分比,并能够像User.ProfileInfoPercentage这样访问它。 现在,我想知道什么是最好的方法?
1回复

扩展LDAP成员资格以在用户名后添加前缀/后缀

我们的Web应用程序正在使用LDAP成员资格提供程序来认证和注册Active Directory中的用户。 为了允许用户提供其他应用程序中存在的用户名,我们需要在其用户名中添加前缀,并且该前缀应尽可能透明和轻松。 我需要的是一种扩展LDAP成员资格提供程序的方法,以便能够在成员资格进行身
4回复

锁定ASP .Net自定义成员资格提供程序中的用户

我必须为我当前的ASP .Net项目创建一个自定义成员资格提供程序,以便适应我们的数据库架构,并且在配置它时如果他们的密码错误三次就会锁定用户时出现问题,这是由标准供应商。 这是我需要自己实现的东西,还是本来应该得到支持? 我没有专门处理它的代码(并且没有任何接口成员似乎专门处理它)
1回复

MVC:在控制器中保留对当前用户的引用的最佳方法是什么?

我是一个将所有内容都绑定到当前连接用户的应用程序。 到目前为止,几乎我所有的操作都调用了我的UsersService.GetUser(guid)方法,该方法将用户及其所有关联数据带入。 确实可以,但是在每个动作中都说了一个电话确实让我感到困扰。 经过考虑后,我决定使用一个声明如下内容的
2回复

使用asp.net会员提供商如何检查用户是否注册?

使用asp.net和c#membership provider如何检查用户是否注册? 我想在代码中处理这个而不是使用“登录状态”?