1

他に 2 つのロール プロバイダーを持つカスタム ロール プロバイダーを作成したいと考えています。次のようなカスタム メンバーシップ プロバイダーを作成しました。

public class CustomMemberProvider : MembershipProvider
{
    MembershipProvider _sqlProvider = null;
    MembershipProvider sqlProvider
    {
        get
        {
            if (_sqlProvider == null)
                _sqlProvider = System.Web.Security.Membership.Providers["SqlProvider"] as SqlMembershipProvider;
            return _sqlProvider;
        }

    }
    MembershipProvider _adProvider = null;
    MembershipProvider adProvider
    {
        get
        {
            if (_adProvider == null)
                _adProvider = System.Web.Security.Membership.Providers["AdProvider"] as MembershipProvider;
            return _adProvider;
        }

    }
    ....

今、私はこれらの 2 つのロール プロバイダーを web.config からも取得したいと思います。次のようなものです。

public class CustomRoleProvider : RoleProvider
{
    private static readonly string m_RoleProviderNamePrefix = System.Web.Configuration.WebConfigurationManager.AppSettings["RoleProviderName"] + ":";

    RoleProvider _sqlProvider = null;
    RoleProvider sqlProvider
    {
        get
        {
            if (_sqlProvider == null)
                _sqlProvider = ??????
            return _sqlProvider;
        }

    }
    RoleProvider _adProvider = null;
    RoleProvider adProvider
    {
        get
        {
            if (_adProvider == null)
                _adProvider = ??????
            return _adProvider;
        }

    }

それを取得する方法が見つかりません。助けてください、ありがとう。

4

1 に答える 1

0

web.config の組み込みセクションを介してプロバイダーをプラグインします。相互に参照する必要はありません。プロバイダーが期待する適切な機能を実装するだけで済みます。

メンバーシップ プロバイダーの例: http://msdn.microsoft.com/en-us/library/6e9y4s5t%28v=vs.100%29.aspx

ロール プロバイダー ( タグ) の例: http://msdn.microsoft.com/en-us/library/tksy7hd7%28v=vs.100%29.aspx

于 2013-08-19T06:05:03.007 に答える