3

たとえば、すべてのユーザー名を取得するときに、.NET Membership.GetAllUsers() コレクションで LINQ を使用しようとしています。

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

しかし、VSはサポートされていないと言っています..

メンバーシップは、MembershipUser と同じ Web.Security の一部です。

これが私の接続文字列です(関連性がある場合):

   <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 はユーザー コードによって処理され
ませんでした。メッセージ = 指定されたメソッドはサポートされていません。
ソース = System.Web.Extensions StackTrace: System.Web.ClientServices.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() at Bedriftsmelding.Nettside.Models.CompanyUsers.GetUserIdFromUserName(String username) in C:\Projects\Bedriftsmelding\Bedriftsmelding.Nettside\Models\CompanyUsers.cs:Bedriftsmelding の 26 行目。 Tests.DTO.CompanyUsersTest.TestGetUserIdFromUserName() C:\Projects\Bedriftsmelding\Bedriftsmelding.Tests\DTO\CompanyUsersTest.cs: 16 行目の InnerException:

4

2 に答える 2

4

デフォルトのSqlMembershipProviderではなくClientFormsAuthenticationMembershipProviderを使用しているようです。

ClientFormsAuthenticationMembershipProviderのドキュメントによると、GetllAllUsersはサポートされておらず、サポートされていない例外をスローします。

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

このプロバイダーはAjax拡張機能で使用するように設計されているため、基本的なValiateUserと他のいくつかの関数のみがこのプロバイダーで機能するようです。GetUser、GetAllUsers、DeleteUser、CreateUserなどのユーザー関数は機能しません。

于 2012-10-15T23:30:21.197 に答える
1

SimpleMembership、Membership Providers、Universal Providers、および新しい ASP.NET 4.5 Web Forms と ASP.NET MVC 4 templatesというトピックを読むまで、同じ問題に直面していました。

簡単な答えは、MVC4 のメンバーシップ機構は MVC3 以前のものとはまったく異なるということです。また、asp.net MVC プロジェクトの PM からの情報もあります。これはトレンドであり、関連するコードを最初から再構築する価値があると思います。

于 2013-06-12T08:57:22.483 に答える