当把Membership.GetAllUsers()转换为通用列表时出现不支持的异常

 2023-02-16    428  

问题描述

我正在尝试在.NET Membership.getAllUsers()集合上使用LINQ,例如获取所有用户名:

var usernames = Membership.GetAllUsers().Cast<MembershipUser>().Select(x=>x.UserName).ToList();

但vs告诉我它不受支持..

当把Membership.GetAllUsers()转换为通用列表时出现不支持的异常

成员资格是Web.Security的一部分,与empersialUser相同

这是我的连接字符串(如果是任何相关性):

<add name="ApplicationServices" connectionString="Data Source=somerserver.xx\SQLEXPRESS;Initial Catalog=bedriftsmelding;User Id=SomeUser;Password=SomePassword;Integrated Security=False" providerName="System.Data.SqlClient" />

堆栈跟踪:

system.notsupportedException由用户代码未处理
消息=不支持指定的方法.

source = system.web.extensions stacktrace:
在system.web.clientervices.providers.clientFormsauthenticationMembershipProvider.getAllUsers(Int32
PageIndex,Int32 Pagesize,Int32和TotalRecords)
在System.Web.Security.membership.getAllUsers(Int32 PageIndex,Int32 Pagesize,Int32和TotalRecords)
在system.web.security.membership.getAllusers()
在bedriftsmelding.nettside.models.Companyusers.getUserIdFromUsername(字符串
用户名)在
C:\ Projects \ BedRiftsmelding \ BedRiftSmelding.Nettside \ Models \ CompanyUsers.cs:Line
26.
在bedriftsmelding.tests.dto.com panyuserstest.testgetUserIdFromUsername()

C:\ Projects \ BedRiftSmelding \ BedRiftSmelding.Tests \ DTO \ CompanySerstest.Cs:Line
16 InnerException:

推荐答案

看起来您正在使用ClientFormsAuthenticationMembershipProvider而不是默认的SQLMEMBERSHIPPROVIDER.

根据ClientFormsAuthenticationMembershipProvider的文档,不支持GetllAllUsers并抛出不支持的异常.

似乎只有基本的valiateuser和一些其他功能与本提供商合作,因为它设计用于Ajax扩展.没有用户函数工作,例如getUser,getAllusers,deleteUser,createUser等…

其他推荐答案

我面临着同样的问题,直到我通过这个主题读取: SimpleMembership,会员提供者,通用提供商和新的ASP.NET 4.5 Web表单和ASP.NET MVC 4模板.

一个简单的答案是MVC4中的成员资格Machanism与MVC3和之前完全不同.有来自ASP.NET MVC项目的PM的其他信息.我认为这是一种趋势,值得尝试再次从头开始重建相关代码.

以上所述是小编给大家介绍的当把Membership.GetAllUsers()转换为通用列表时出现不支持的异常,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34003.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。