-1

私はちょうど不思議です

なぜasp.netチームは、意味のあるプロジェクト名ではなく、メンバーシップロールアプリケーション名のデフォルト値として/を選択したのですか?

また、アプリケーションがルート アプリケーションとしてデプロイされない場合があります。/ が適切でなくなったことを意味します。

編集1:

例: 最初にプロジェクト A を作成してデプロイします。後で、別のプロジェクト 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>

編集3:

2 つのアプリケーション (つまり、1 つをルートとして、もう 1 つを子アプリとして) を作成し、両方とも同じ applicationName を / に設定すると、両方のアプリケーションで同じ ApplicationID が使用されます。これは、スラッシュがサイト ドメイン ツリーとは関係がないことを意味します。私の混乱は解決されました。では、なぜ Visual Studio はデフォルトで / に設定したのでしょうか (これは私にとって混乱を招きます)。

編集4:

2つのアプリケーションがあります。1 つはルート アプリケーションとして、もう 1 つは前者の下のサブ アプリケーションとして。どちらも applicationName = "/" を使用します。データベースで次のような結果が得られました: では、/ の意味は何ですか? 意味がない場合、なぜVSはプロジェクト名ではなく、この紛らわしい名前を選んだのですか?

代替テキスト

編集5:

この記事から、要約を作成します。

  1. 両方のアプリケーションの web.config から applicationName 属性を削除すると、ルート用にデータベースで生成される ApplicationName は「/」になり、サブアプリ用にデータベースで生成される ApplicationName は「/subappvirtualdir」になります。
  2. 両方のアプリケーションの applicationName をデフォルト値の "/" のままにしておくと、ルート アプリとサブ アプリの両方が、データベースで生成された "/" の同じ ApplicatonName を取得します。
  3. 両方のアプリケーションで applicationName を「任意の名前」に変更すると、データベースで生成された ApplicationName は、両方のアプリケーションで「任意の名前」に設定されます。

上記のリンクをありがとうロッキン!

4

2 に答える 2

2

デフォルトの名前は/、DBがアプリについて何も知らないことになっているためだと思います。したがって、プロジェクト名はわかりません。彼らはある種の出発点を持っている必要があります、そして彼らは読者を気にしないので、あなたはを得る/

Aspnet_regsql.exeを使用して、Visual Studioから完全に独立したデータベースにASP.NETメンバーシップスキームを作成できるため、データベースだけでアプリケーション名をすべて「修正」することはできません。もちろん、データベースを作成した直後にデータベース内のアプリ名を編集することもできます。そうすれば、それはもう問題ではありません。

編集

あなたの編集では、データベースのapplicationNameではなく、web.configのapplicationNameについて話していることがわかりました。詳細については、このブログ記事(私のものではありません)をお読みください
http://dotnettipoftheday.org/tips/applicationName_attribute.aspx

于 2010-12-20T05:41:15.370 に答える
2

アプリケーションは通常、それがどの「プロジェクト」から来たのかを知らないか、気にしません。そのため、そのコンテキストはおそらく存在しません。

また、アプリがルートにない場合は、名前を変更してください...

于 2010-12-20T05:42:05.560 に答える