關於我

我的相片
用心思考、保持熱情,把工作上的經驗作分享與紀錄。希望能夠跟大家一起不斷的成長~

讓Vistual Studio 2010 可使用 Fixedsys 字型

因為在vs2010以前版本的vistual studio 開發環境,

最習慣使用Fixedsys作為字型(同事介紹,這字型眼睛看起來真的舒服多了~~~)

但升級至vs2010以後,發現習慣的Fixedsys字型不見了?!

 

原想就將就用別的字型吧~

但我還是一直對Fixedsys字型念念不忘 XD

所以Google了一下發現有人也討論此問題(可見這字型應該很多人喜歡),

 

該討論串,提到原因可能為Vistual Studio 2010 只支援TrueType的字型。

而原Fixedsys不是此類格式,So,在vs2010就沒有支援了。

 

但也有人做了TrueType格式的Fixedsys字型,

我測試將此字型安裝到Windows系統中,

再將vs2010選到此字型(Fixedsys Excelsior 3.01),

真的就可以在vs2010使用Fixedsys字型了~~

 

原提供字型網站:http://www.fixedsysexcelsior.com/

分享給喜歡Fixedsys字型的朋友^__^

Windows 2003 Server 上,加速VS2010執行速度

剛開發到一半,VS2010 突然跳出視窗建議我可安裝以下元件。

http://support.microsoft.com/kb/981741/zh-tw

擷取

真的是滿有意思的,看說明表示,此元件可以加速Vistual Studio 2010 中使用 IntelliSense 的執行速度。

 

我用的是Server 2003,由他的可支援安裝作業系統來看,

不知道 Windows7 是否已經內建有此元件囉~

 

看到這麼好的東西,當然馬上下載來安裝測試看看囉~

推薦給大家~

至於有沒真的變快,就給大家自己安裝後去感覺看看囉~~^__^

WSS 3.0 Form 驗證設定

本文參考自http://technet.microsoft.com/zh-tw/library/dd125486.aspx

相當清楚的教學文章,感謝原作者的分享。

依照原作的教學步驟,測試即可正確使用Form 驗證囉~

WSS 3.0 Form 驗證實作

發佈日期: 2007 年 11 月 1 日

作者: 王恩琦 (TechNet 技術論壇 WSS 版版主;微軟 2007 年度 WSS MVP)
http://blog.blueshop.com.tw/angi/ [ http://blog.blueshop.com.tw/angi/ ]

本頁內容

Stage 1. 建立 WSS 網站
Stage 2. 建立 FBA 資料庫與帳號
Stage 3. 修改 WSS web.config
Stage 4. 設定 WSS 網站的驗證模式

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

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

本文實作 Form 驗證之前,當然的,必須先擁有一個 WSS 3.0 網站,什麼?不知道 WSS 3.0 為何物?不知道怎麼安裝 WSS 3.0 網站?那煩請先換個地方,參考小弟 Blog 上的拙作【認識 SharePoint 2007 系列】的文章,安裝一下環境。下面,小弟先將整個 WSS 3.0 從安裝開始,到完成 Form 驗證的設定,分成四個階段,並用一個簡單的圖將每個階段的重點步驟點出,相信對接下來要進行的工作,能有比較清晰的輪廓:

clip_image001

Stage 1. 建立 WSS 網站

關於 WSS 網站的建立,本階段僅列出前置作業、安裝過程與安裝相關的連結提供參考,就不在此贅述安裝的過程了:

1. Step 1-1. 安裝前的準備

2. Step 1-2. 安裝 WSS 3.0 與建立網站

3. Step 1-3. 開啟匿名存取

· 認識 SharePoint 2007 系列【01】-【WSS 3.0 正式版安裝】安裝前的準備 [ http://blog.blueshop.com.tw/angi/archive/2006/11/22/45264.aspx ]

· 認識 SharePoint 2007 系列【02】-【WSS 3.0 正式版安裝】安裝之一 [ http://blog.blueshop.com.tw/angi/archive/2006/11/24/45325.aspx ]

· 認識 SharePoint 2007 系列【03】-【WSS 3.0 正式版安裝】安裝之二 [ http://blog.blueshop.com.tw/angi/archive/2006/11/24/45333.aspx ]

· 認識 SharePoint 2007 系列【04】-【WSS 3.0】開啟匿名存取 [ http://blog.blueshop.com.tw/angi/archive/2006/11/24/45334.aspx ]

回到頁首

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

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

本階段您要完成下列三個步驟:

1. Step 2-1. 建立 FBA 資料庫

2. Step 2-2. 設定 Membership 與 Provider

3. Step 2-3. 建立使用者帳號

Step 2-1. 建立 FBA 資料庫

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

clip_image002

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

clip_image003

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

clip_image004

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

clip_image005

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

clip_image006

資料庫建立完成。

clip_image007

Step 2-2. 設定 Provider

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

1. 先建立 ASP .NET Web Site 專案

2. 修改專案的 web.config 將資料庫指向 aspnetdb

3. 在 web.config 建立新增 Membership 與 Provider

4. 使用 ASP.NET Configuration 產生輸入介面

5. 最後,輸入欲新增的帳號與密碼即完成帳號的新增工作

要設定 Provider 並須使用 Visual Studio 2005 的工具,可在官方網站下載免費的 Visual Web Developer 2005 Express Edition [ http://www.microsoft.com/taiwan/vstudio/express/vwd/download/ ] ,在這邊就不介紹下載與安裝的過程了。

打開【Visual Web Developer 2005 Express】,點選【檔案】【新網站】

clip_image008

在【New Web Site】對話框,選擇【ASP.NET 網站】,【位置】輸入此專案的名稱與存放位置,決定好之後點選【確定】。

clip_image009

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

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

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

clip_image010

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

最重要的是:此段程式碼與上一段連接字串程式碼,與稍後將修改的 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>

clip_image011

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

clip_image012

Step 2-3. 建立使用者帳號

接下來我們使用 ASP.Net 網站管理工具來進行使用者帳號的建立。

clip_image013

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

clip_image014

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

clip_image015

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

clip_image016

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

clip_image017

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

clip_image018

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

clip_image019

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

clip_image020

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

clip_image021

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

clip_image022

回到頁首

Stage 3. 修改 WSS web.config

第三階段的工作有兩個重點,說難不難,因為我們剛剛已經在第二階段做了設定 Member 與 Provider 的工作,本階段就是要將第二階段的程式碼,加在 WSS 網站的 web.config 與管理中心的 web.config 裡。

本階段您要完成下列兩個步驟:

1. Step 3-1. 修改 WSS 網站的 web.config

2. Step 3-2. 修改管理中心的 web.config

Step 3-1. 修改 WSS 網站的 web.config

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

clip_image023

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

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

clip_image024

接著再把 Provider 資訊照貼在 <system.web> 之後

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

clip_image025

Step 3-2. 修改管理中心的 web.config

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

clip_image026

打開之後呢,同樣的把 <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"> 如此,便能使用 WSS 預設的角色管理模式了!

clip_image027

回到頁首

Stage 4. 設定 WSS 網站的驗證模式

終於來到最後一個階段了,在最後的這個階段,要修改兩個部份的設定,分別是修改驗證提供者與新增管理者。

本階段您要完成下列兩個步驟:

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

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

Step 4-1. 修改驗證提供者

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

clip_image028

進入【驗證提供者】在【Web 應用程式】可以看到現在的 Web 應用程式為何,且這個應用程式的【成員資格提供者名稱】為【Windows】,則直接點選【預設】。

clip_image029

在編輯驗證畫面裡

· 【驗證類型】選擇【表單】。

· 勾選【啟用匿名存取】。

· 成員資格提供者名稱則輸入【AspNetSqlMembershipProvider】。

· 角色管理員名稱輸入【AspNetSqlRoleProvider】,請確認輸入的字串是正確的!

· 輸入完畢點選【儲存】。

clip_image030

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

clip_image031

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

clip_image032

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

clip_image033

Step 4-2. 新增管理者

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

clip_image034

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

clip_image035

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

clip_image036

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

clip_image037

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

clip_image038

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

clip_image039

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

在 WSSS 3.0 Form 驗證完成後,伴隨而來的問題是搜尋的問題,有關搜尋的議題,下回再做分享!

SharePoint IIS 目錄下,掛載虛擬目錄,權限上須特別注意

專案上希望可以開發功能,並整合於SharePoint中,

可直接建立一個asp.net 的web application 並掛載於Sharepoint下的虛擬目錄。

這樣就可以達到共用權限管理的模組。

而要怎麼把網頁嵌入至sharepoint中呢?!

sharepoint中,可以新增一種名為【頁面檢視器網頁組件】的文件

用此文件,便可直接將要瀏覽的網站,嵌入至Sharepoint中。

不論是外部網站,或是SharePoint下的虛擬目錄網站。

均可用此方式嵌入於SharePoint中。

 

而這裡我使用此方式將Web Application佈署於SharePoint下時,

卻發生了一連串的權限上錯誤、如下,

擷取

在查詢後,因為SharePoint有自己的Web.config設定檔,

而佈署在SharePoint下的虛擬目錄網站,則會繼承到SharePoint的Web.config設定。

因此上網Google了一下,找到了一個相關於權限上的Web.config設定、如下,

image

SharePoint 預設有以上信任權限等級設定,

會讓佈署於其下的應用程式有許多權限上的問題。

最後我直接將此設定註解掉,便可順利使用應用程式了。

這樣的作法不確定是否正確,

有空再來研究權限等級的差異,找出較好的權限等級,

讓應用程式可正確執行。

ASP.NET MemberShip 屬性說明

MemberShipProvider時常會用到將其資訊註記下來。

屬性說明:
name  是用來做識別用的,同時可能有好幾個會員提供者。
type   包含會員提供者的名稱空間 類名稱 及組件名稱。
connectionStringName   會員提供者一定要依靠資料庫,這個是指定包含有會員資料的資料庫連線字串名稱(就是web.config裡的<connectionStrings>區段的連線字串)。
enablePasswordRetrieval   是否要提供回復原始密碼的功能,但當passwordFormat這個屬性設定為Hashed單向加密的時候此屬性就無法作用了。使用PasswordRecovery 控制項將提供原始密碼。
enablePasswordReset   是否要提供重置密碼的功能,當passwordFormat這個屬性設定為Hashed單向加密的時候,使用PasswordRecovery控制項將會提供新密碼。
requiresQuestionAndAnswer 設定是否必須要提供安全性問題及答案,當此屬性設定為true時,建立使用者的時候就必須要提供安全性問題和答案, 使用PasswordRecovery 控制項也回要求使用者來輸入答案已達到驗證目的。
applicationName   應用程式名稱,達到多個web應用程式都可用同一個資料庫及同一個會員提供者並且不會互相干擾的目的(此屬性對做單一登入的機制很有用!)
requiresUniqueEmail   用來判斷使用者的Email是否為唯一是別不予許重複。
passwordFormat  對密碼加密的格式有ClearEncryptedHashed三種。 Clear當然就是以明碼存於資料庫啦,Encrypted 是提供了可還原的加密,Hashed是不可還原的加密。
maxInvalidPasswordAttempts 設定在該時間內(passwordAttemptWindow)嘗試密碼超過指定次數(maxInvalidPasswordAttempts)則會將帳號鎖定。
minRequiredPasswordLength 設定最密碼的最少字串長度。
minRequiredNonalphanumericCharacters 這是指定密碼內最少要有幾個特殊字元(~!@#$%^&*()_+等等..)。
passwordAttemptWindow 設定在該時間內(passwordAttemptWindow)嘗試密碼超過指定次數(maxInvalidPasswordAttempts)則會將帳號鎖定。
passwordStrengthRegularExpression 密碼格式的驗證運算式。

PS: 當passwordStrengthRegularExpression, minRequiredNonalphanumericCharacters, minRequiredPasswordLength設定後,每當建立帳號或變更密碼時就會驗證密碼的格式,如果不符合就會失敗!

將資訊註記下來,以後方便查閱

Team Fundation Server 2010 安裝參考

今天測試安裝Team Fundation Server 2010 ..

剛好遇到環境不符合的情況,看了一下說明,裡面有提到可安裝的環境,

把圖截下來,下次可參考。

擷取

以下為Team Fundation Server 2010安裝完成後,可選擇的環境設定選項,其中有滿詳細的說明

Basic:

擷取

Standard Single Server: 

擷取2

Advanced:

擷取3

Application-Tier Only:

擷取4

Upgrade:

擷取5

Configure Team Foundation Server Proxy:

擷取6

Configure Team Foundation Build Service:

擷取7

以上為可設定的選項,而我這邊是先使用 Standard Single Server 的 mode測試設定安裝,

安裝前,會先檢查環境是否已正確完成。情況如下:

擷取

這邊有幾個需要注意的地方:

  1. IIS 是否已安裝完成。(我是安裝在Server2003 sp2 ,所以IIS版本用的是6.0 )
  2. SqlServer是否已安裝完成(我這邊安裝的是Sql Server 2008 版本)
  3. Windows SharePoint Service 是否已安裝。

以上如未先安裝完成,在這個階段會無法通過Check。