2009-06-28 6 views
2


IIS7は異なる既定のメンバシッププロバイダを使用しますか?

は私がCreateUserWizardコントロールを作成し、既定のメンバシッププロバイダとして(のmachine.configで定義されている)AspNetSqlMembershipProviderを使用すると言います。私はにデフォルトのプロバイダのrequiresQuestionAndAnswer属性を変更すると仮定すると、CreateUserWizardコントロールテンプレートは質問回答フィールドを提供するために要求されるべきではありません。

CreateUserWizard1:CreateUserWizardStep.ContentTemplateは、セキュリティの質問のためにIDの質問とIEditableTextControlが含まれていない、あなたのメンバーシッププロバイダーが質問を必要とする場合、これを必要とする私はIIS7を経由してページを要求した場合しかし、私は次の例外を取得しますと答える。

A)上記の例外はIIS7を介してページを要求するとき、ランタイムはデフォルト・プロバイダとしてのmachine.configで定義さAspNetSqlMembershipProvider()を使用していないことを示唆しています!本当なら、それはなぜですか?

B)そして、の定義はどこですか?IIS7のデフォルトプロバイダーの定義はどこですか?


ありがとう


編集:ここでは

があるmachine.configファイル内<Membership>要素:

<membership> 
    <providers> 
     <add name="AspNetSqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="LocalSqlServer" 
     enablePassswordRetrieval="false" 
     requiresQuestionAndAnswer="false" 
     applicationName="/" requiresUniqueEmail="false" 
     passwordFormat="Hashed" maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="7" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression=""/> 
    </providers> 
    </membership> 


machine.configを正しいバージョンのランタイムに変更していますか?

私はあなたが何を意味するかわかりません。私はAsp.Netエンジンバージョン2.0.50727を使用していると思うAsp.Net 3.5を実行しています。したがって、私はC内に位置するのmachine.config操作:\ Windowsの場合\ Microsoft.NET Frameworkの\ v2.0.50727の\ CONFIG

答えて

2

\ IIS7は%windir%\System32\inetsrv\config\applicationHost.configに位置独自の構成ファイルを使用しています。ただし、このファイルはIIS7特定の構成(例えば<system.webServer>)とない<system.web>ものを扱っています。私はそれらがまだmachine.configweb.configファイルから読み込まれると信じています。実際、AspNetSqlMembershipProviderためrequiresQuestionAndAnswer用(machine.configで指定)デフォルト値は、私のマシンでtrueです。

UPDATE:64ビットOSの下

、.NETアプリケーションはWOW64モードで32ビットCLR上で実行するか、ネイティブのx64モードで実行しますか。各.NETフレームワークインスタンスには独自の設定ファイルセットがあり、他のすべての設定ファイルは無視されます。

64ビットOS上のIIS7は、デフォルトで64ビットモードでアプリケーションを実行します。ただし、32ビットWOW64プロセスとして実行するようにアプリケーションプールを設定することができます(enable32BitAppOnWin64、これはIIS7マネージャのアプリケーションプールの[詳細設定]ダイアログで設定できます)。もしそうなら、明らかに32ビットの設定を使用します。machine.config VS Webサーバーが32ビットのmachine.configを使用する理由はまさにこれです:WOW64プロセスとして実行されます。

+0

requiresQuestionAndAnswer="false"を設定し、<profile> 1でそれを変更する必要があります)は無視されますか? – SourceC

+1

SourceC:machine.configにタグを投稿できますか?正しいバージョンのランタイムの 'machine.config'を変更していますか? –

+0

こんにちは - 私の返信は私が編集した元の投稿にあります。私はそれを感謝します – SourceC

1

「requiresQuestionAndAnswer」で正確に変更しましたか?それがmachine.configにある場合、IISはそれを尊重する必要があります。

+0

私はmachine.configで変更を加えました – SourceC

1

あなたは<membership>プロバイダでrequiresQuestionAndAnswer="false"を追加し、あなたも私のマシンのデフォルトプロバイダに(のmachine.config内で定義された理由を任意のアイデアを<profile>要素を追加し、そのプロバイダ

関連する問題