好的,我有一组三个 Web 应用程序。
我现有的 Web 应用程序没有任何自定义,它只是使用了基本的成员资格提供程序。
YAF.NET使用自定义提供程序,造成问题的是自定义配置文件提供程序:
<profile enabled="true" defaultProvider="YafProfileProvider" inherits="YAF.Utils.YafUserProfile">
<providers>
<clear/>
<add connectionStringName="yafnet" applicationName="YetAnotherForum" name="YafProfileProvider" type="YAF.Providers.Profile.YafProfileProvider"/>
</providers>
</profile>
所以我将它与我的主站点集成,只需在主站点上添加对我的配置文件提供程序的引用YAF.Utils
和inherits="YAF.Utils.YafUserProfile"
属性。
但现在我也在尝试将BugNET集成到组合中。BugNET对其成员实现进行了以下自定义:
<membership defaultProvider="ExtendedSqlMembershipProvider">
<providers>
<clear />
<add name="ExtendedSqlMembershipProvider" type="BugNET.Providers.MembershipProviders.ExtendedSqlMembershipProvider, BugNET.Providers.MembershipProviders.ExtendedSqlMembershipProvider" connectionStringName="BugNET" description="Extended Membership API" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="BugNET" requiresUniqueEmail="false" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
</providers>
</membership>
<profile enabled="true" automaticSaveEnabled="false" defaultProvider="MyProfileProvider">
<providers>
<clear />
<add name="MyProfileProvider" type="Altairis.Web.Providers.SimpleSqlProfileProvider, Altairis.Web.Providers" connectionStringName="BugNET" tableName="BugNet_UserProfiles" keyColumnName="UserName" lastUpdateColumnName="LastUpdate" />
</providers>
<properties>
<add name="FirstName" type="String" customProviderData="FirstName;nvarchar;100" />
<add name="LastName" type="String" customProviderData="LastName;nvarchar;100" />
<add name="DisplayName" type="String" customProviderData="DisplayName;nvarchar;150" />
<add name="IssuesPageSize" type="Int32" defaultValue="10" customProviderData="IssuesPageSize;int" />
<add name="NotificationTypes" type="String" defaultValue="Email" customProviderData="NotificationTypes;nvarchar;255" />
<add name="PreferredLocale" type="String" defaultValue="en-US" customProviderData="PreferredLocale;nvarchar;50" />
<add name="SelectedIssueColumns" type="String" defaultValue="" customProviderData="SelectedIssueColumns;nvarchar;50" />
</properties>
</profile>
我应该以什么方式合并所有三个 web.config?
我的目标是拥有以下应用程序结构:
并且所有三个都集成在同一个ASP.NET成员模型下。
为了做到这一点,我显然需要
- 在所有网络配置文件中使用相同的机器密钥,或者我读过?
- 我认为告诉所有三个应用程序“网络根”是什么是有道理的?如,将其设置为“www.website.com”
- 合并成员配置文件,我将如何实现这一点,我在某处读到YAF从其自定义配置文件提供程序继承的实现覆盖了放入
properties
该部分节点的任何profile
内容。我编辑他们的实现或源代码没有问题。我是否应该将BugNET实现中的自定义属性编辑到 YAF.Utils.YafUserProfile 中,并且可能还将其重命名为更合适的名称,或者将其放入我的主要网站解决方案中? - BugNET似乎正在使用的“扩展会员提供程序”怎么样?我应该按原样测试它并找出它们是否兼容吗?在不同的解决方案中使用不同的实现,是否兼容?
- 还有什么我可能会丢失的吗?
另外需要说明的是,我打算拥有一个名为 的特殊文件夹App_Shared
,它将在主网站项目中,以及YAF.NET和BugNET的 svn-external 。在那里,我打算放置一个所有三个应用程序都应继承的 Base 母版页,因此我可以共享一些非常基本的细节,例如页眉、页脚和 SiteMap。
欢迎大家帮忙,谢谢!