Angi's Tech Trace

I'm small, but think big!

Home Contact Syndicate this Site (RSS 2.0) Syndicate this Site (Atom) Login
  168 Posts :: 2 Stories :: 322 Comments :: 8 Trackbacks

News

搬家了!
小弟搬到點部落一段時間
點我點我→I'm small, so share nothing

本 Blog 之內文如不慎侵權請告知,非轉載或連結之文章皆為本人著作,如喜歡要保存於個人 Blog 上,請告知並標示來源!謝謝囉!


= 位朋友在此賞文中 =

每月文章

隨筆分類

影像集

Blog

Forum

MVP's Blog

SharePoint

資源連結


WSS Form 驗證,自 WSS 2.0 開始,就是一直被期待的功能,據官方說法 WSS 2.0 架構是不支援 Form 驗證的,當然,還是有人在 WSS 2.0 版做出 Form 驗證的!

不過 MS 這回終於在 WSS 3.0 正式支援 Form 驗證的功能,其方法與流程也變得便捷許多,使得 WSS 小組網站能在 Internet 上公開不再是一件困難的事情了。

 

(小聲:好險在準備投入所有心血研究 WSS 2.0 Form 驗證的第二天,看到 WSS 3.0 支援 Form 驗證的消息,讓我們頓時鬆了一口氣)

 

開啟 WSS 3.0 Form 驗證的功能大概可區分為五個階段,分別是:

Stage 1.建立網站

Stage 2.建立 FBA 資料庫與帳號

Stage 3.修改 WSS網站的 web.config

Stage 4. 修改管理中心的 web.config

Stage 5.設定 WSS 網站的驗證方式

 

Stage 1. 建立網站】

網站之建立,請參考下面連結,這邊就不再贅述了

認識 SharePoint 2007 系列【01-WSS 3.0 正式版安裝】安裝前的準備

認識 SharePoint 2007 系列【02-WSS 3.0 正式版安裝】安裝之一

認識 SharePoint 2007 系列【03-WSS 3.0 正式版安裝】安裝之二

認識 SharePoint 2007 系列【04-WSS 3.0】開啟匿名存取

Stage 2. 建立FBA資料庫與帳號】

要讓使用者從 Internet 等外部環境登入 WSS 網站,其方法是使用 Form 驗證 (forms-based authentication, FBA)FBA 的實作需要建立一個資料庫來儲存使用者的資訊,做為使用者登入網站驗證的基礎。而在此實作 FBA 的方法是使用 ASP.NET 2.0 SQL Server 整合的 Membership Role Provider 機制,這種方法也是最快建置 FBA 的方法。

本階段分為三個子步驟

Step 1. 建立FBA資料庫

Step 2. 建立帳號輸入介面

Step 3. 建立帳號

打開 Windows 的【執行】,輸入【c:\windows\microsoft.net\framework\v2.0.50727\aspnet_regsql】將會啟動 ASP.NET SQL Server 安裝精靈

安裝精靈畫面,點選【下一步】

點選【設定應用程式服務的 SQL Server

在【伺服器】輸入您的伺服器名稱,使用【Windows 驗證】,資料庫則輸入【aspnetdb】,按【下一步】

確認設定畫面,如果輸入有誤,請按【上一步】去修改,如果沒有錯誤則點選【下一步】開始安裝

資料庫建立完成

Step 2. 建立帳號輸入介面

當我們完成資料庫的建立後,使用者資訊、角色資訊當然是空的,所以我們至少要新增一個使用者來做登入的驗證,甚至指定為網站的管理者;由於剛剛建立的 aspnetdb 結構有些許複雜,一時很難瞭解 UserRole 等等之間的關係,所以我們使用 ASP .NET Configuration 功能來快速建立一個帳號輸入介面,這個步驟又可分為幾個小步驟,在這邊先簡要說明一下流程

  1. 先建立 ASP .NET Web Site 專案
  2. 修改專案的 web.config 將資料庫指向 aspnetdb
  3. web.config 建立新增 Membership Provider
  4. 使用 ASP.NET Configuration 產生輸入介面
  5. 最後,輸入欲新增的帳號與密碼即完成帳號的新增工作

打開【Microsoft Visual Studio 2005】,點選【File】【New】【Web Site...

在【New Web Site】對話框,選擇【ASP.NET Web Site】,【Location】輸入此 Project 的名稱與存放位置,決定好之後點選【OK

當按下 OK 之後,即開始建立專案相關的檔案,建立完成後可以看到 FormMA 這個專案下面有三個檔案,點選【web.config】修改連線字串。

<configuration> <appSettings/> <system.web> 之間,修改原來的 <connectionStrings> 為下列資訊,請記得將資料庫伺服器名稱改為自己的資料庫伺服器名稱

 

<connectionStrings>

<add name="AspNetSqlProvider" connectionString="server=資料庫伺服器名稱; database=aspnetdb; Trusted_Connection=True" />

</connectionStrings>

接著在 <system.web> <system.web/> 之間,輸入下列資訊,基本上不需做任何修改;預設的 applicationName  applicationName="/" ,即將此介面指定在根目錄下,如果有更改,則membership roleManager applicationName 都必須更改,如圖所示 applicationName="/FormAu"

最重要的是:此段程式碼與上一段連接字串程式碼,與稍後將修改的 WSS 網站與管理中心的 web.config 字串幾乎一模一樣的,也就是說,這邊的兩段程式碼,將來直接貼到 WSS 網站與管理中心的 web.config 即可,不過,管理中心在 roleManager 的部份還是有點不同,這些不同的部分與置放的位置後面再說明

 

<membership defaultProvider="AspNetSqlMembershipProvider">

      <providers>

        <remove name="AspNetSqlMembershipProvider" />

        <add connectionStringName="AspNetSqlProvider" passwordAttemptWindow="10" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" description="Stores and retrieves membership data from the Microsoft SQL Server database" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

      </providers>

    </membership>

 

    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">

      <providers>

        <remove name="AspNetSqlRoleProvider" />

        <add connectionStringName="AspNetSqlProvider" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

      </providers>

    </roleManager>

當上述資訊輸入完成後,在【Solution Explorer】點選最右邊的【ASP.NET Configuration】,ASP.NET即開始產生一個虛擬的 Web 應用程式管理介面

ASP.NET網站管理工具頁面

進到此網站管理工具頁面後,我們先確認此管理工具是否有連接到資料庫,且剛剛設定的相關提供者 (Provider) 是不是都正常連接;所以我們點選【提供者】頁簽,再點選【位每項功能選取不同的提供者 (進階)

進入進階選項後,可看到如下的畫面,我們分別測試【成員資格提供者】與【角色提供者】,點選【測試】連結即可開始測試

只要連接成功,則測試會回傳【已順利建立與資料庫的連接】的資訊

連接沒問題後,點選【安全性】頁簽,準備選取驗證類型來更改驗證方式與增加使用者帳號;點選【選取驗證類型】

選擇【從網際網路】,並按下【完成】

接下來直接點選【建立使用者】,當然您可以新增角色,但我們角色將使用 WSS 的角色,所以這邊不設定

點了建立使用者後,在下面的表單註冊帳戶資訊,如果剛有新增角色,則角色欄會出現可選取的角色,記得勾選【現用使用者】,然後按下【建立使用者】

按下建立使用者後,出現【完成...】等資訊,按下【繼續】則可在新增使用者

當建立完成後,可以在【安全性】頁簽看到使用者與角色相關的資訊

由於本篇篇幅滿長的,因此將此篇 Form 驗證分為上下兩篇;下篇將繼續後面的三個階段... (待續)

posted on Saturday, December 02, 2006 8:45 PM

Feedback

# test 12/17/2006 2:06 AM Angi's Knowledge


# 詳細的 WSS 匿名存取架構設定文件, 感謝 Angi 分享 12/18/2006 1:44 PM Refines.Info["Polo Lee"]
算是我的疏忽, 這陣子 較忙碌, 今天才發現 Angi 在 9 號就已經給我一個 update. 仔細瀏覽過, 整理得相當細膩與詳細. MOSS/WSSV3 是實上 是一個 架構在 ASP.NET 2.0

# re: 認識 SharePoint 2007 系列【05】-【WSS 3.0】啟用 Form 驗證 (上篇) 3/5/2007 11:51 AM yier
Dear Angi:

您好,我想問一下,爲什麽我的【Microsoft Visual Studio 2005】,點選【File】【New】沒有【Web Site...】,只有另外的兩個選項?

# re: 認識 SharePoint 2007 系列【05】-【WSS 3.0】啟用 Form 驗證 (上篇) 3/5/2007 3:17 PM Angi
Dear yier:

請問您的 Visual Studio 2005 是甚麼版本?
1. 如是 SQL Server 2005 內建的 VS 2005,那麼只有 Business Intelligent 專案而已,就沒有 Web Site。那麼您需要安裝正式的 VS 2005。
2. 如果非 SQL Server 2005 內建的版本,請問您是使用精簡版嗎?如果是精簡版則沒有此專案!
3. 如果不是 1. 2. 兩點原因,請執行 VS 2005,安裝時選擇客製,勾選 Visual Web Developer 選項即可!

Angi

# re: 認識 SharePoint 2007 系列【05】-【WSS 3.0】啟用 Form 驗證 (上篇) 3/5/2007 6:27 PM yier
DearAngi:

我的是SQL Server 2005 內建的vs2005.

一直在尋找原因,太感謝您了.


yier