2012-02-21 7 views
1

誰かが助けてくれることを願っています。ASP.netメンバーシップを使用してSilverlightでaspnet_Usersを取得する

ネットを見回しましたが、これを解決(または理解)できないようです。

私は(それが非常に長いと述べページで見ることができ、ここでクラスMembershipServiceUserを繰り返すつもりはない)

http://blogs.msdn.com/b/kylemc/archive/2010/05/10/using-asp-net-membership-in-silverlight.aspx に掲載のコードを試してみました、私はドメインを設定していますクラスとコードを返すサービス:

//[RequiresRole("Managers")] 
public IEnumerable<MembershipServiceUser> GetAllUsers() 
{ 
    return Membership.GetAllUsers().Cast<MembershipUser>().Select(u => new MembershipServiceUser(u)); 

} 

私はテストのためにRequiresRoleを取り出しました。

私が少しブロンドのように見えるのは、GetAllUsers()メソッドの呼び出しです。私のコードで

私が使用しています後ろ:

MembershipDataContext context = new MembershipDataContext(); 
EntityQuery<MembershipServiceUser> users = context.GetAllUsersQuery(); 

私だ、このメソッドを使用する正しい方法であれば、100%確実ではないか、他の何かが間違っている場合

context.GetAllUsersQuery(); returns "Enumeration yielded no results" 

一つの理由問題はkylmcが// RequiresRole( "Admin")を使用するコードにもあります。これはASP.NET設定エディタで作成されたカスタムロールですか?

SilverlightでASP.NET認証サービスを使用する際の別のチュートリアルを見ると、 "Managers"というロールを作成し、そのロールにログインユーザーを追加しました。 役割マネージャを持つユーザーを使用してログインすることは役に立ちませんが、結果はまだ生成されません。

私は可能な限り考えていますか?

感謝

ニール

答えて

1

照会に関わる2つのステップがあります。

  1. ドメインサービスコンテキストからクエリオブジェクトを取得します(同期)。
  2. ドメインサービスコンテキスト(非同期)からクエリをロードします。

例:

public void Load() 
{ 
    // define the query 
    var query = context.GetAllUsersQuery(); 

    // start running the query, and when the results return call 
    // OnGetAllUsersLoaded 
    context.Load(query, OnGetAllUsersLoaded, null); 
} 

public void OnGetAllUsersLoaded(LoadOperation op) 
{ 
    var results = op.Entities; 
} 
+0

恐ろしい男は、そんなにTX – Neill

関連する問題