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 :: 348 Comments :: 8 Trackbacks

News

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

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


= 位朋友在此賞文中 =

每月文章

隨筆分類

影像集

Blog

Forum

MVP's Blog

SharePoint

資源連結


接續 啟用 Form 驗證 (上篇),今天就把剩下的三個階段完成吧,此三階段為:

 

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

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

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

 

 

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

首先,先確認所建立的網站是使用哪一個 Port,然後到【C:\Inetpub\wwwroot\wss\VirtualDirectories】路徑下去找相對應的 Port Number,如這次要實作的是 8040 Port,所以找到 8040 資料夾,並點選 web.config

將之前在Stage 2. 建立FBA資料庫與帳號】Step 2. 建立帳號輸入介面所編輯的 <connectionStrings> 程式碼照貼在 </SharePoint> <system.web> 之間,資料庫伺服器名稱記得要改唷!

<connectionStrings>

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

</connectionStrings>

 

接著再把 Provider 資訊照貼在 <system.web> 之後 (為了方便大家又貼了一次… XD)

<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>

 

整個位置的擺放如下圖所示,如此就完成了 WSS 網站 web.config 的更改,接下來繼續修改管理中心的web.config

 

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

如同修改 WSS 網站 web.config 的方式,先找到管理中心的資料夾,通常,管理中心的 Port 會是亂數,所以,只要找不是自己設定的 Port Number 就是了(如圖)

打開之後呢,同樣的把 <connectionStrings> 貼在</SharePoint> <system.web> 之間,接著將 Provider 資訊照貼在正確的位置上。重點來了:在這邊要更改 <roleManager> 資訊

 

之前所使用的 <roleManager> 是使用AspNetSqlRoleProvider

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

即,roleManager 角色管理的資訊是使用我們自訂的,但這樣的自訂無法與 WSS 3.0 整合起來,所以繼承 WSS 3.0 的角色管理資訊是最方便的

 

現在要將 <roleManager> 改為 AspNetWindowsTokenRoleProvider

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
更正:將roleManager enable改為roleManager enabled,感謝網友isaac來信告知,讓isaac花了不少時間除錯,真不好意思!XD  (2007/03/16更正)

如此,便能使用 WSS 預設的角色管理模式了!

 


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

終於來到最後一個階段了,在最後的這個階段,要修改兩個部份

Step 1. 修改驗證提供者:將驗證模式從 Windows 改為 Form 驗證模式

Step 2. 新增管理者:指定我們在 aspnetdb 所建立的使用者為管理者

Step 1. 修改驗證提供者

進到【管理中心】【應用程式管理】在【應用程式安全性】點選【驗證提供者】

進入【驗證提供者】在Web 應用程式】可以看到現在的 Web 應用程式為何,且這個應用程式的【成員資格提供者名稱】為【Windows】;在此,請選擇正確的 Web 應用程式,因為要更改的是 8040 Port,所以點選【Web 應用程式】【變更 Web 應用程式】,如果已經是正確的 Web 應用程式,則直接點選【預設】即可,或繼續閱讀後面文章。

擊點SharePoint – 8040

這時會看到Web應用程式已改為【http://anginb:8040/】,即正確的 Web 應用程式,擊點【預設】

在編輯驗證畫面裡

  1. 【驗證類型】選擇【表單】
  2. 勾選【啟用匿名存取】
  3. 成員資格提供者名稱則輸入AspNetSqlMembershipProvider
  4. 角色管理員名稱輸入【AspNetSqlRoleProvider】,請確認輸入的字串是正確的!
  5. 輸入完畢點選【儲存】

儲存之後,現在看到 Web 應用程式 http://angiinb:8040/ 成員資格提供者名稱已改為【AspNetSqlMembershipProvider】,這時到 http://anginb:8040/ 去看看

當進入網站,點選右上角的【登入】就會換成表單驗證的介面,要求輸入帳號與密碼

耶!進入網站了,右上角顯示歡迎angi】,不過,怎麼沒有管理網站的【網站動作】呢?那...這樣怎麼管理網站?所以,接下來的動作就是要將 angi 變更為網站管理者!

Step 2. 新增管理者

在應用程式管理,【應用程式安全性】點選【Web應用程式的原則】

在【Web 應用程式的原則】點選【新增使用者】,當然先確認Web應用程式是否為正確要變更的Web應用程式

在新增使用者頁,區域選擇【預設】,因為剛剛在建立驗證提供者時,區域是顯示【預設】,所以這邊選擇預設

在使用者新增【angi】,並擊點右下角的【檢查名稱】圖示,只要有正確對應,且資料庫中有這個使用者,待名稱檢查完後,使用者 angi 就會變成底線的 angi,如此就可以確定此帳號與設定是沒有錯的;在【權限】勾選【完全控制-具有完全控制權】使 angi 這個使用者可以去管理整個網站,點選【完成】

新增完畢後,可以看 Web 應用程式的原則,多了一個【預設】【angi】【aspnetsqlmembershipprovider:angi】【完全控制】,這樣就成功了

再回到網站,登入後就可以看到【網站動作】

 

恭喜大家,終於完成了 WSS 3.0 Form 驗證的設定!!! :)

 

以上,就是整個 WSS 3.0 Form 驗證的過程,給大家參考!很抱歉拖了這麼久,希望對大家有幫助!

文中敘述性的文字,是根據自己測試後消化的結果,可能與微軟正確的解釋有所差異,如有類似描述錯誤的地方,請大家更正與指教了!

 

2006/12/9 angi

 

補上實作 Form 驗證所參考的來源文章:http://blogs.msdn.com/sharepoint/archive/2006/08/16/702010.aspx

posted on Saturday, December 09, 2006 1:57 PM

Feedback

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

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/18/2006 8:00 PM angi
ㄏㄏ
Polo 來啦,真高興在這邊見到你
測試結果趕不上發文速度,唉唉
得再認真一點了,ㄆㄆ... :)

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/28/2006 2:28 AM Eric Tsai
請問您有沒有試過如何強迫輸入帳號密碼的網頁時要使用https,登入後即回到http?

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/28/2006 10:50 AM Eric Tsai
另外請問是不是用FBA後就無法使用檔案總管檢視?在SharePoint Designer中打開網站也看不到目錄結構。

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/28/2006 11:53 AM Eric Tsai
SharePoint Designer的問題我用這招解決了http://weblog.vb-tech.com/nick/archive/2006/08/18/1726.aspx

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/28/2006 1:41 PM angi
Hi, Eric Tsai

關於強迫 https 的部分,我沒有試過,不過個人認為:

1.在建立 【Web應用程式】 的時候,
 【安全性設定】【使用 Secure Sockets Layer (SSL)】選擇【是】
 那麼應該在登入網站的時候就必須使用 https
 可參考此連結的圖片對照上面的設定
 http://blog.blueshop.com.tw/angi/archive/2006/11/24/45333.aspx

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 12/28/2006 1:48 PM angi

2.使用 https 登入後,在這個網站下都是 https 的協定
 不知 Eric 有甚麼考量,要從 https 跳回 http
 如果要從 https 跳回 http 的做法,應該是建立一個使用 https 的 Web 應用程式
 讓大家都從這個 Web 應用程式進去,進去之後再導到另一個網站
 不過在這過程當中,當導到另一個網站時,會出現安全性的提醒

以上只是想法,還沒實作過,請先參考!

至於 FBA 後就無法使用檔案總管檢視?這我還沒 try 過咧,不過感謝 Eric 的答案... :)

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 2/8/2007 4:44 PM Eric Tsai
因為持續用HTTPS的話會耗費CPU資源,所以我才想要只在打密碼時使用HTTPS。不過後來想一想如果有勾選"讓我自動登入",那麼之後再回到同一個網站時似乎就防不到了。

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 2/8/2007 4:44 PM Eric Tsai
我觀察了一下,最後在Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\template\layouts\login.aspx中加了一段程式重新導向,如此要打密碼時便會使用HTTPS,打完密碼還是回到HTTP。

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 3/19/2007 11:05 AM Ben
Hello, Angi,

您好,在倒數第三張的步驟中,您輸入的angi是在asp.net網站管理工具中新增的帳號名稱嗎?因為我輸入使用者ID後,發生了「找不到完全符合的項目」的紅字警示。

謝謝您製作了這麼詳盡的說明。

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 3/19/2007 12:09 PM Angi
Hi, Ben

是的,小弟在【ASP.NET網站管理工具頁面】輸入了一個 angi 的帳號,所以請您回到管理介面,新增一個帳號。
不客氣囉,有問題再討論... :)

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/10/2007 11:52 AM Rykio
Hi,Angi
我是follow你的例子設定的,但是發生了跟上面的Ben一樣的狀况,「找不到完全符合的項目」,不過我已經在【ASP.NET網站管理工具頁面】新增了帳號的啊,試了很多次,都沒有成功。還會有什麽可能呢?
多謝!

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/10/2007 1:11 PM Angi
Hi, Rykio

請問您是做到哪一張圖出錯了呢?Ben是倒數第三張,您呢?根據您的問題,請確認:

1. Form 驗證的網站能否開啟?
2. 此帳號能否登入Form驗證的網站?
3. 確認【Stage 3. 修改 WSS 網站的 web.config】是否正確執行
4. 確認【Stage 4. 修改管理中心的 web.config】是否正確執行
5. 確認【Stage 5. 設定 WSS 網站的驗證方式】的驗證提供者是否正確執行?

Angi


# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/17/2007 3:28 PM Blue
我也是碰到「找不到完全符合的項目」的狀況, 設定都有按照您的步驟做了, 可是就是找不到我在aspnetdb所加入的Usr.

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/18/2007 2:36 PM Angi
Hi, Blue

請檢查管理中心,應用程式管理的驗證提供者是否有正確設定!


# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/18/2007 8:06 PM Blue
是的, 按您的步驟做的.
樓上的兩位朋友碰到的問題都解決了嗎? 他們是發生甚麼問題呢?

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/19/2007 9:56 AM Angi
Hi, Blue

請問您也是在倒數第三張圖【新增使用者】出了問題嗎?
如果是在倒數第三張圖,將管理者加入時發生找部到完全符合的項目,就是管理中心web.config以及【編輯驗證】的地方有問題!可否再確認這邊的資訊!

至於這兩位朋友,後來沒有feedback,所以不知道ㄟ,應該解決了吧,不然應該會再來問問題... XD

Angi


# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/19/2007 2:13 PM Blue
Hi Angi,
謝謝你的回覆, 原來是我Confuse了, 除了設定要服務(就是你的8040port)的web.config之外, 管理中心的web.config也要設. 我原本只有設要服務的web.config.

已經可以了, 感謝你.

Blue

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/21/2007 9:36 PM Blue
請問:
以上方法之使用者資料在資料庫, 如果還是要使用Form Base認證但用戶資料為AD的做法該如何做呢?

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 4/24/2007 8:01 PM Angi
Hi, Blue

http://blogs.msdn.com/polo_lee/archive/2006/12/26/wssv3-moss2007.aspx
這篇連結您先參考一下,還沒有時間實作 :)


# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 9/12/2007 10:40 AM Jacky
Hello Angi,

在 倒數第八張 Form驗證站台輸入Form驗證上篇所建的使用者後,秀出:
您無法登入伺服器。請確定您的使用者名稱與密碼是正確的,然後再試一次。
但在SqlExpress中有user資料
使用的資料庫為SqlExpress
好像沒有連接見到資料庫中驗證,煩請解惑,謝謝協助!

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 9/25/2007 11:25 PM Jacky
Hello Angi,

已測試成功,無Form驗證問題
謝謝提供參考資料本篇參考資料

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 11/6/2007 3:02 PM
ANGI
不好意思
我的系統是MOSS
我照著你的步驟做完了
從資料庫看和從"WEB應用程式原則"下新增使用者
都可以看到那筆帳號
但是我在登錄畫面打完正確的USERID和PASSWORD
畫面卻不會跳動
請問是哪裡出了問題呢@@"
謝謝

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 11/6/2007 3:06 PM
應該說跳動完但還是再同一頁面
就如同上一個問答者說的
再倒數第八張的地方出錯了
其他部分反而都沒問題@@"


# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 5/30/2008 12:35 PM unoyin
您好
我看宗有同樣的問題
依您的步驟設定完畢MOSS後
從從"WEB應用程式原則"下新增使用者ok
但是我在登錄畫面打完正確的USERID和PASSWORD
畫面postback後沒有任何反應,還是在原登入畫面
不知'是哪裡出了問題呢?
謝謝

ps.我使用遠端連線SQL資料庫,連線是ok的

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 5/30/2008 3:20 PM lin
楼主您好,我按您方法做,但做到倒数第8页的时候就不行了,也就是输入帐户、密码的时候登陆不了,一按登陆按钮就出现错误页面,但我确定帐户、密码是对的。不知道问题出在哪?望回复,感谢您。

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 10/21/2008 6:20 PM Kevinli
可否結合AD做用?

# re: 認識 SharePoint 2007 系列【06】-【WSS 3.0】啟用 Form 驗證 (下篇) 10/15/2009 3:40 PM Sharon
您好,我想請問
我都做完了上述的步驟,登入後登入身份已換成表單驗證的UserID,
但卻出現"錯誤:拒絕存取",這個這個問題是因為那個部份沒有設定正確呢?

Sharon

Post Feedback

Title:
Name:
Url:
驗證碼  
Comments: