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

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

但是VS告诉我它不受支持..

Membership 是 Web.Security 的一部分,与 MembershipUser 相同

这是我的连接字符串(如果有任何相关性):
   <add name="ApplicationServices" connectionString="Data Source=somerserver.xx\SQLEXPRESS;Initial Catalog=bedriftsmelding;User Id=SomeUser;Password=SomePassword;Integrated Security=False" providerName="System.Data.SqlClient" />

堆栈跟踪:

最佳答案

看起来您正在使用 ClientFormsAuthenticationMembershipProvider 而不是默认的 SqlMembershipProvider。

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

http://msdn.microsoft.com/en-us/library/system.web.clientservices.providers.clientformsauthenticationmembershipprovider.getallusers.aspx

似乎只有基本的 ValiateUser 和一些其他功能可以与此提供程序一起使用,因为它是为与 Ajax 扩展一起使用而设计的。没有任何用户功能有效,例如 GetUser、GetAllUsers、DeleteUser、CreateUser 等...

关于c# - NotSupportedException 将 Membership.GetAllUsers() 转换为通用列表时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12905343/

10-12 00:24