我正在尝试计划一系列共享许多资源的网站,例如css / jscript / images / content等。出于这个原因,我想在相同的应用程序和IIS配置文件下运行所有网站,但根据使用的URL,更改母版页和主题/皮肤。
ASP.NET成员资格数据库看起来好像是为了设计这个目标而设计的,因为它允许您设置多个应用程序,但是我认为构建它的目的是允许应用程序在虚拟目录下运行/文件夹,而不是单独的网址。
是否可以将网址映射到特定应用程序?
提前致谢 人
答案 0 :(得分:2)
是的,可以这样做。在您的配置中,为您的提供程序使用applicationName。这样,所有数据都将保存在同一个数据库中,但由大多数表中的Application ID保持独立。
您共享资源的一种可能性是将它们放在一个位置,您可以通过在第一个位置使用完整网址来指向其他网站的位置。
另一种可能性是在同一个域中的虚拟目录中托管一个应用程序,尽管你可以通过web.config继承来解决一些有趣的问题。如果您显示两个应用程序的目标域命名,将会有所帮助。
在一个应用程序中: web.config 1:
<roleManager enabled="true">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" applicationName="/ApplicationOne"
...add other properties here as standard
/>
</providers>
</roleManager>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" applicationName="/ApplicationOne"
...add other properties here as standard
/>
</providers>
</membership>
在您的其他申请中: web.config 2:
<roleManager enabled="true">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" applicationName="/ApplicationTwo"
...add other properties here as standard
/>
</providers>
</roleManager>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" applicationName="/ApplicationTwo"
... add other properties here as standard
/>
</providers>
</membership>
答案 1 :(得分:-1)
最简单的解决方案是根据页面执行的URL包含样式表,使用:
Request.ServerVariables("SERVER_NAME")
IE(伪):
if Request.ServerVariables("SERVER_NAME") = "http://www.domain1.com" then
include stylesheet1
else
include stylesheet2
end if
您需要找到一个从URL中提取域名的功能,以便它能够正常运行。