7

私は ASP.NET メンバーシップ プロバイダーをそのまま使用してきましたが、基本的な目的を十分に果たしています。私が気付いていることの1つは、一連のストアドプロシージャなどをデータベースにインストールすることです。

ASP.NET メンバーシップの EF 実装はありますか? それともありますか?

私は、いくつかの GUI を介してロールと承認を使用してメンバーシップ プロバイダーの機能を拡張する必要がある次のプロジェクトを持っています。

さらに、これを使用するたびに、web.config に 2 つの接続文字列があり、1 つは DbContext 用で、もう 1 つはアプリケーション サービス、特にメンバーシップ プロバイダー用です。なぜ私は1つしか持てないのですか?

4

3 に答える 3

2

探しているのはユニバーサル プロバイダーです: http://nuget.org/packages/Microsoft.AspNet.Providers.Core

これらは内部で EF Code First 5 を使用して実装されています。すべてがスムーズに機能することを確認したら、内部 DBContext を公開します。

于 2012-09-02T10:55:49.340 に答える
0

Entity Framework で ASP.NET メンバーシップ プロバイダーとロールを実装するには、ASPNETDB (メンバーシップ データベース) のすべてのビューを EDMX ファイルにインポートする必要があります。例: vw_aspnet_MembershipUsers、vw_aspnet_Roles、vw_aspnet_UsersInRoles、vw_aspnet_Users など...

その後、メンバーシップは EF 経由で実行されます。したがって、以下の関数を使用して GUI を提供できます。

ここにコントローラーコードがあります。例えば

  // GET: /Membership/Edit/5

    public ActionResult Edit(Guid id)
    {
        var recordToEdit = (from r in _db.vw_aspnet_Users where r.UserId == id select r).First();
        return View(recordToEdit);
    }

    public ActionResult Index()
    {
        return View(_db.vw_aspnet_MembershipUsers.ToList());
    }

次に、ASPNETDB を既存のデータベースにマージして、web.config に接続文字列を 1 つだけ作成する方法を説明します。(あなたの質問: なぜ 1 つしか持てないのですか?)

これは、以下の手順を使用して行うこともできます。

ASPNETDB.MDF はメンバーシップ プロバイダー データベースであり、データベースからメンバーシップ データを格納および取得するために使用されます。ここでは、メンバーシップ プロバイダー データベースを作成する方法を説明します。Aspnetdb.mdf の作成に使用するコマンドは、ASPNET_RegSQL.EXE です。

1.[スタート] -> [プログラム] -> [Microsoft Visual Studio 2005] -> [Visual Studio ツール] -> [Visual Studio 2005 コマンド プロンプト] の順に選択します。Visual Studio 2005 コマンド プロンプトで ASPNET_RegSQL.EXE と入力します。

  1. 「Asp.Net SQL Server ウィザードへようこそ」という見出しのウィザードが表示されます。ここで「次へ」をクリックする必要があります

  2. 次に、「セットアップ オプションの選択」を含むウィザードが表示されます。ここで、セットアップ オプション「Configure sql server for application Purpose is default」を選択する必要があります。必要なものを選択して次へ。

  3. 「Select Sql Server Database」を含むウィンドウが表示されます 次に、SQL Server データベースを選択する必要があります。ここでは、サーバー、認証タイプ、およびデータベースを設定する必要があります。デフォルト名「aspnetDb.mdf」を選択すると、選択されます。既存のデータベースを変更する場合は、そのデータベースを選択します。

5.ここで、「設定を確認してください」という見出しが付いた確認が表示されます。サーバー名とデータベース名を確認し、[次へ] をクリックします。

  1. 「データベースが作成または変更されました」というウィンドウが表示されます。[完了] をクリックします。

上記の手順では、既存のデータベースを選択する必要があることに注意してください。いくつかのテーブル (11+)、ビュー、メンバーシップとロールのストアド プロシージャが既存のデータベースに追加されます。

楽しんでください....ありがとう...

于 2012-09-01T05:24:50.877 に答える
0

MVC3 の gui メンバーシップ管理システムを参照したり、プロジェクトに追加したりできます。

それらをいじって、それらがどのように機能するかを確認できます。どこを見ればよいかがわかれば、簡単に作成できます。

Membership クラスMembershipUser クラスは、すべてのユーザー情報を保持します。たとえば、ユーザーの承認を取り消すには、次のようにします。

MembershipUser user = Membership.GetUser("userName");
user.IsApproved = false;
Membership.UpdateUser(user);

また、ユーザーを削除する場合は、 を使用できますMembership.DeleteUser("userName");

Roles クラスには、すべてのロール関連情報があります。LikeRoles.GetUsersInRole("roleName")は、ロール内のすべてのユーザーのリストを返しますroleNameRoles.CreateRole("roleName");ロールを作成し、ロールRoles.DeleteRole("roleName");を削除します。

デフォルト以上のものが必要な場合は、Implementing a Membership Providerを参照してください。

2 つのデータベースがある限り、これは必要ありません。ツールを使用して、すべての ASP.NET テーブル、ストアド プロシージャなどをデータベースに追加できますAspnet_regsql。Aspnet_regsql.exeを使用したデータベースのインストールをご覧ください。これにより、データベースを 1 つだけ持つことができるため、asp.net 接続文字列を削除してから、他の接続文字列をメイン データベースへの接続文字列を使用するようにWeb.Config変更できます。AspNetSqlMembershipProvider AspNetSqlProfileProvider AspNetSqlRoleProvider

于 2012-09-01T09:16:56.543 に答える