0

いくつかの質問:

app_data フォルダーの下に作成したデータベースがあります。このデータベースを、同じフォルダーの下にある既存の aspnetdb に関連付ける方法はありますか? もしそうなら、誰かが私を導くことができますか?

そうでない場合は、asp .net メンバーシップも利用する APP_CODE フォルダーの下に独自のデータベースを作成する最良の方法は何でしょうか? つまり、コード (If User.IsinRole("........") など) でユーザー名とロールを確認し、プロジェクト内のアイコンを使用してメンバーシップ ページを開き、追加/変更できます。 /ユーザーも削除しますか?

ありがとう

4

3 に答える 3

0

Membership Provideraspnet_regsqlで生成されたデータベースではなく、カスタムデータベースがあるため、カスタムを作成できます。

public class CustomMembershipProvider : MembershipProvider
{   
    public override MembershipUser CreateUser(string username, 
       string password, string email, string passwordQuestion, 
       string passwordAnswer, bool isApproved, 
       object providerUserKey, out MembershipCreateStatus status)
    {
        throw new NotImplementedException();
    }

    public override MembershipUser GetUser(string username, bool userIsOnline)
    {
        throw new NotImplementedException();
    }

    public override bool ValidateUser(string username, string password)
    {
        throw new NotImplementedException();
    }

    public override int MinRequiredPasswordLength
    {
        get { throw new NotImplementedException(); }
    }

    public override bool RequiresUniqueEmail
    {
        get { throw new NotImplementedException(); }
    }
}

メンバーシッププロバイダーを登録します

<connectionStrings>
    <add name="ApplicationServices" 
      connectionString="Server=your_server;Database=your_db;
                         Uid=your_user_name;Pwd=your_password;"
      providerName="System.Data.SqlClient" />
</connectionStrings>

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear/>
    <add name="CustomMembershipProvider" 
        type="CustomMembership.Models.CustomMembershipProvider"
        connectionStringName="AppDb"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="false"
        requiresUniqueEmail="false"
        maxInvalidPasswordAttempts="5"
        minRequiredPasswordLength="6"
        minRequiredNonalphanumericCharacters="0"
        passwordAttemptWindow="10"
        applicationName="/" />
  </providers>
于 2012-10-09T18:25:26.510 に答える
0

接続文字列を変更して、両方の同じデータベースを指すようにするだけです。もちろん、スキーマを一方から他方にコピーし、必要なデータをコピーする必要があります。

于 2012-10-09T18:22:14.143 に答える
0

MembershipProvider を作成できます。例は、コード プロジェクトのカスタム メンバーシップ プロバイダーで入手できます。

于 2012-10-09T18:05:20.973 に答える