私はなぜasp.netチームはメンバーシップの役割アプリケーション名ではなく、理にかなっているプロジェクト名のデフォルト値として/選んだ実際にapplicationName属性はどのように機能しますか?
を疑問に思って?
さらに、アプリケーションがルートアプリケーションとしてデプロイされていない可能性があります。これは/がもはや適切ではないことを意味します。
編集1:たとえば
:私は最初のプロジェクトを作成し、それを展開。後で別のプロジェクトBを作成して展開します。両方のプロジェクトがデフォルトを使用しても、それでも機能しますが、どのユーザーが各プロジェクトから来ているのかを知ることは難しいでしょう。
私にとっては、デフォルトがプロジェクト名に設定されている方が良いでしょう。
編集2:
私は、Web.configファイル内のVisual Studioによって生成されたapplicationName属性について話しています。 デフォルトで/の代わりにプロジェクト名を使用しないのはなぜですか?
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ApplicationServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear />
<add name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider"
applicationName="/" />
</providers>
</roleManager>
EDIT 3:
二つのアプリケーションを作成した後(すなわち、ルートと子アプリ等の他の一つとして、1)との両方が/に設定同一のapplicationNameを有し、両方のアプリケーションが使用します同じApplicationID。これは、スラッシュがサイトドメインツリーとは何の関係もないことを意味します。私の混乱は答えられました。ですから...なぜVisual Studioはデフォルトで/に(それは私のために混乱しますか?)それを設定しましたか?
EDIT 4:
私は2つのアプリケーションを持っています。 1つはルートアプリケーションとして、もう1つは前者のサブアプリケーションとして使用します。どちらもapplicationName = "/"を使用します。私はデータベースの中で次のような結果を得ました。だから/の意味は?意味がない場合、VSはなぜプロジェクト名ではなくこの混乱する名前を選んだのですか?
EDIT 5:我々は両方のアプリケーションのWeb.configからのapplicationName属性を削除した場合
- は、のApplicationNameが生成:このarticleから
、私は要約を行いますルートのデータベースでは "/"、サブアプリケーションのデータベースで生成されたApplicationNameは "/ subappvirtualdir"になります。
- 両方のアプリケーションでapplicationNameをデフォルト値の "/"にしておくと、ルートアプリケーションとサブアプリケーションの両方で、データベース内で生成されたApplicatonNameの "/"が同じになります。
- 両方のアプリケーションでapplicationNameを「任意の任意の名前」に変更すると、データベースで生成されたApplicationNameは、両方のアプリケーションで「任意の任意の名前」に設定されます。
ありがとうございました!
あなたが大規模なアプリケーションを構築する際に、彼/彼女は、データベースを作成するときに、あなたのDBAは、名前を設定します、そして、あなたが構築していきますプロジェクト。データベースには、プラグインされているプロジェクトが本来はわかりません。それが十分に懸念される場合は、データベースの作成直後に名前を変更してください。再び、VSでDBを作成できると思っていても、aspnet_regsql.exeを介して独立して実行できるので、必ずしも "should"を意味するとは限りません。 –
私は自分の答えを編集しました。 –
@rockin、/の意味は?applicationNameとして分かりますか?私はそれがサイトのドメイン構造とは何の関係もないことに気づきました。 – xport