我只是想知道
为什么 asp.net 团队选择 / 作为 Membership Role 应用程序名称的默认值,而不是有意义的项目名称?
此外,该应用程序可能不会部署为根应用程序。这意味着 / 不再合适。
编辑1:
例如:我先创建一个项目A并部署它。后来我创建了另一个项目 B 并部署它。如果两个项目都使用默认值,它们仍然可以工作,但很难知道每个项目都有哪些用户。
对我来说,最好将默认设置为项目名称。
编辑2:
我说的是 Visual Studio 在 Web.config 中生成的 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:
创建两个应用程序(即,一个作为根应用程序,另一个作为子应用程序)并且都将相同的 applicationName 设置为 / 后,两个应用程序使用相同的 ApplicationID。这意味着斜线与站点域树无关。我的困惑已经得到解答。那么...为什么 Visual Studio 默认将其设置为 / (这让我感到困惑)?
编辑4:
我有两个应用程序。一个作为根应用程序,另一个作为前者下的子应用程序。两者都使用 applicationName = "/"。我在数据库中得到如下结果: 那么 / 的含义是什么?如果没有意义,为什么VS选择了这个令人困惑的名称而不是项目名称?
编辑 5:
从这篇文章中,我将做一个总结:
- 如果我们从 web.config 中删除两个应用程序的 applicationName 属性,则在数据库中为 root 生成的 ApplicationName 将为“/”,而在数据库中为子应用程序生成的 ApplicationName 将为“/subappvirtualdir”。
- 如果我们将两个应用程序的 applicationName 保留为其默认值“/”,则根应用程序和子应用程序都将获得数据库中生成的相同 ApplicatonName 的“/”。
- 如果我们将两个应用程序的 applicationName 更改为“您想要的任何名称”,那么数据库中生成的 ApplicationName 将为两个应用程序设置为“您想要的任何名称”。
感谢 Rockin 提供上面的链接!