私たちはサイトにformsAuthenticationを実装しようとしていますが、独自のHttpModuleを作成してカスタム私自身論理的なものだったので、これが確かに唯一の解決策であるかどうかを確かめるためにそこに質問を投げかけたいと思った。サイト内の複数のサブフォルダに対してFormsAuthenticationを有効にする
カスタムメンバーシッププロバイダの上でformsAuthenticationを使用したいが、異なるフォルダに対して異なるプロバイダを使用したいと思う。私たちのサイトでは、これらのセクションをサブフォルダ(たとえば、〜/ Admin、〜/ GoldCustomer、〜/ SilverCustomer、〜/ BronzeCustomer)で分割しているため、各セクション/サブフォルダごとに異なるメンバーシッププロバイダを使用したいと考えています。ランタイムエラーが発生してもこれを行う
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="Admin">
<system.web>
<authentication mode="Forms">
<forms name="AdminAuth" loginUrl="~/AdminLogin.aspx" />
</authentication>
<membership defaultProvider="AdminProvider" >
<providers >
<add connectionStringName="ConnString" name="AdminProvider" type="Assembly.AdminMembershipProvider" ... />
</providers>
</membership>
</system.web>
</location>
<location path="GoldCustomer">
<system.web>
<authentication mode="Forms">
<forms name="GoldCustomerAuth" loginUrl="~/GoldCustomerLogin.aspx" />
</authentication>
<membership defaultProvider="GoldCustomerProvider" >
<providers >
<add connectionStringName="ConnString" name="GoldCustomerProvider" type="Assembly.GoldCustomerMembershipProvider" ...="" />
</providers>
</membership>
</system.web>
</location>
<system.web>
<compilation debug="true" />
<authentication mode="Forms" />
</system.web>
</configuration>
:これをサポートするためのフレームワークを使用して、我々は次のように私たちのweb.configファイルを実装したい
てallowDefinition =として登録セクションを使用するとエラーになり」 MachineToApplication 'はアプリケーションレベルを超えています。このエラーは、仮想ディレクトリがIISのアプリケーションとして構成されていないために発生します。
Line 11: <location path="Admin">
Line 12: <system.web>
Line 13: <authentication mode="Forms">
Line 14: <forms name="FormsAdmin" loginUrl="~/login.aspx" />
Line 15: </authentication>
我々がしようとしているものを達成する唯一の方法は、カスタムHttpModuleをしているようだ - または(IISで別のWebアプリケーションにフォルダを分割するように)我々のアプローチを変更します。これは正しいのですか、何か不足していますか?それとも私が気づいていない他の選択肢がありますか?
ありがとうございました!
あなたはメンバーシップ・プロバイダのみが許可されています。これは、アプリケーションinitでロードされキャッシュされます。これを行う必要がある各プロバイダとは何が違うのですか? – typemismatch