【发布时间】:2011-09-18 07:39:36
【问题描述】:
好的,我有一组三个 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 Membership 模型下。
为了做到这一点,我显然需要
- 在所有 Web 配置文件中使用相同的机器密钥,或者我已经阅读过?
- 我认为告诉所有三个应用程序“Web 根”是什么是有道理的?如,将其设置为 "www.website.com"
- 合并成员配置文件,我将如何实现这一点,我在某处读到YAF 从他们的自定义配置文件提供程序继承的实现覆盖了放在
profile部分的properties节点中的任何内容。我编辑他们的实现或源代码没有问题。我是否应该将 BugNET 实现中的自定义属性编辑到 YAF.Utils.YafUserProfile 中,或者也可以将其重命名为更合适的名称,或者将其放入我的主要网站解决方案中? - “扩展会员提供程序”BugNET 似乎在使用什么?我应该按原样测试它并找出它们是否兼容吗?在不同的解决方案中使用不同的实现,是否兼容?
- 我还有什么遗漏的吗?
另外需要说明的是,我打算在主网站项目中创建一个名为App_Shared 的特殊文件夹,以及YAF.NET 和BugNET 的svn-external。在那里,我打算放置所有三个应用程序都应继承的 Base 母版页,因此我可以分享一些非常基本的细节,例如页眉、页脚和 SiteMap。
欢迎大家帮忙,谢谢!
【问题讨论】:
标签: c# integration membership bug-tracking yaf