Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
一篇 老外 MVP 文章, 說實在的, 連我都看了好多遍 才看懂 ....
原因很多, 不過最重要的 可能是因為: 我不是 L.J... 我的英文能力 很破... ha
這篇文章 有幾個重點 !
首先, 他談到 如何讓 MOSS / WSS 平台 支援 Content Management 站台結構
也就是 俗稱的 前後台 管理網站架構 !
同一個 Web Application, 在 這個版本的 MOSS / WSS 平台 中, 能夠 直接 並且 同時支援 AD 認證 與 任何 你想要的認證模型.
實務上的應用就是 公司有個網站, 透過 MOSS / WSS 平台架構 !
內部員工 採用 AD 帳號作管理, 但 也開放 讓 一般使用者 直接透過 ASP.NET SQL Provider 方式 以資料庫帳號密碼作管理 !
一個腳本在 : 內部員工 透過內部網站將內容上架, Internet 會員可以支援 匿名存取, 也可以獨立建立一個 資料庫做帳號管理;
我已經開始思考 是否把 Partner Web 做成這個架構 ...
===================
註記幾個重點 !
1. 透過 Central Administration -> Application Management ->
Create Application : 會建立一個新的 Web Application.
Extend 則是會在 暨有的 Web Application 上 多出一個 Zone 的結點定義
2. 所有的站台 必須要要 把 Extranet 與 Internet 甚至是包含 Central Admin 的網站 web.config 調整過 !
<!-- 利用 ASP.NET SQL Provider 的資料庫做帳號管理-->
<connectionStrings>
<add name="UserDBConnectionString"
connectionString="Data Source=.\sqlexpress;Initial Catalog=UserDB;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings><!-- 權限部分也拉到 SQL membership provider -->
<membership defaultProvider="WSSAspNetSqlMembershipProvider">
<providers>
<add connectionStringName="UserDBConnectionString" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
passwordStrengthRegularExpression="" name="WSSAspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership><!-- role provider -->
<roleManager enabled="true" defaultProvider="WSSAspNetSqlRoleProvider">
<providers>
<add connectionStringName="UserDBConnectionString" applicationName="/"
name="WSSAspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>唯一不同的是 Central Admin 站台的web.config 必須採用 WindowsToken membership provider 是透過本機系統管理帳號來管理, 以免太多 Provider 錯亂 !
<!-- role provider -->
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<add connectionStringName="UserDBConnectionString" applicationName="/"
name="WSSAspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
3. 在 Central Administration -> Operations -> Global Configuration -> Alternative Access Mappings 中
你可以欣賞到 目前你的站台是如何 定義的~ 甚至可以給予其他的 URL
4. 個人在測試時, 記得透過 host 檔案來做 假 Wins Name
5. 最後的結果是 同一個 Web Application 站台, 可以同時有兩個 不同的 Zone.
6. Enable 匿名存取必須要先有個 Internet Zone 下的 Full Control 管理員角色登入, 然後在 Site Settings -> Advance Permission -> Settings
總之, 速記下 心得先, 有機會 或是 有高手 把這份心得 發揚光大 ~

