Archive

Posts Tagged ‘SharePoint’

Custom Form Authentication trong Office Sharepoint Server 2007

August 17, 2009 3 comments

Mình vừa hoàn tất xong việc cấu hình Sharepoint Server 2007 với chế độ Form Authentication nên mình post bài này lên chia sẻ cùng các bạn.

Yêu cầu để thực hiện bài lab:

  1. Windows Server 2003
  2. IIS + ASP.NET
  3. Office Sharepoint Server 2007
  4. SQL Server 2005/SQL Server 2008
  5. Visual Studio / Visual Studio Web Developer Express Edition

Nội dung chính của bài lab này gồm 7 phần:

  1. Cấu hình Cơ sở dữ liệu lưu trữ thông tin người dùng
  2. Quản lí người dùng trong cơ sở dữ liệu
  3. Cấu hình Web.config của Sharepoint Central Administration
  4. Cấu hình Web.config của Sharepoint Site
  5. Bật tính năng Form Authentication cho Sharepoint Site
  6. Xác thực người dùng kết nối vào site dựa trên chế độ Form Authentication
  7. Tiến hành đăng nhập

Bước 1: Cấu hình cơ  sở dữ liệu lưu trữ thông tin người dùng

  • Vào SQL Management Studio, tạo mới 1 Database dùng để lưu trữ thông tin người dùng
  • Mở command line và gõ vào dòng:
  • C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe
    (tương đương với <WindowsDirectory>\Microsoft.NET\Framework\<version>\aspnet_regsql.exe)

  • Làm theo hướng dẫn của cửa sổ Wizard hiện để tiến hành cấu hình database lưu trữ thông tin người dùng theo template có sẵn có ASP.NET

  • Sau khi hoàn tất Wizard này, tau vào lại SQL Server Management Studio thì sẽ thấy được cấu trúc các bảng dữ liệu đã được tạo tự động

Bước 2: Quản lí người dùng – mục tiêu bước này là giúp tau hiểu được việc tạo mới và quản lí user

  • tạo một ứng dụng web application với VS Web Developer
  • Cấu hình Form Authentication cho ứng dụng web thông qua viêc cấu hình web.config

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
   <connectionStrings>
<add name="MembershipDatabaseCNX" connectionString="SERVER=localhost; DATABASE=MembershipDatabase; TRUSTED_CONNECTION=true;"/>
   </connectionStrings>
   <system.web>
<machineKey
         validationKey="8E074B186056F889587355255B167DA297AD837E43FD9850"
         decryptionKey="991D4DEB57A2263855C31AA1D3FF4F1AD508A53D2A94658F"
validation="SHA1"
      />

      <authentication mode="Forms"/>
      <membership defaultProvider="DemoMembershipProvider">
         <providers>
            <add
               name="DemoMembershipProvider"
               type="System.Web.Security.SqlMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="MembershipDatabaseCNX"
               enablePasswordRetrieval="false"
               enablePasswordReset="true"
               requiresQuestionAndAnswer="true"
applicationName="/"
               requiresUniqueEmail="false"
               passwordFormat="Hashed"
               maxInvalidPasswordAttempts="5"
               minRequiredPasswordLength="7"
               minRequiredNonalphanumericCharacters="1"
               passwordAttemptWindow="10"
               passwordStrengthRegularExpression=""
            />
         </providers>
      </membership>
      <roleManager enabled="true" defaultProvider="DemoRoleProvider">
         <providers>
            <add
               name="DemoRoleProvider"
connectionStringName="MembershipDatabaseCNX"
applicationName="/"
               type="System.Web.Security.SqlRoleProvider, System.Web,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
            />
         </providers>
      </roleManager>
   </system.web>
</configuration>

  • Copy thẻ machine key từ web.config của ứng dụng sharepoint site và thay thế vào thẻ machine key trong web.config của web application mà chúng ta vừa mới tạo (thông qua machine key, ứng dụng sharepoint site và web app có thể làm việc với nhau, hiểu nhau được)
  • Tạo mới user bằng Asp.net website Administrator Tool hoặc dùng control CreateUserWizard của ASP.NET

Bước 3: Cấu hình web.config của Sharepoint Central Administration

Hiện tại, bạn đã có thể tạo và quản lí người dùng bằng ASP.NET với SQL Server, bạn sẽ tiếp tục công việc của mình là làm sao để cho Sharepoint hiểu được dụng ý của bạn, lưu trữ người dùng tại 1 database trên SQL Server. Điều này hoàn toàn dễ dàng, ta chỉ cần cấu hình lại file web.config của Sharepoint Cental Administration.

Ta thêm vào file cấu hình web.config của SP Central Administration các thông tin sau

<?xml version="1.0"?>
<configuration xmlns=
"http://schemas.microsoft.com/.NetConfiguration/v2.0"&gt;

<connectionStrings> <!– element may already exist –>
<add name="MembershipDatabaseCNX"
connectionString="SERVER=localhost;
DATABASE=MembershipDatabase;
TRUSTED_CONNECTION=true;"/>
</connectionStrings>

<system.web>

<membership> <!– element may already exist –>
<providers> <!– element may already exist –>
<add
name="DemoMembershipProvider"
type="System.Web.Security.SqlMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="MembershipDatabaseCNX"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
/>
</providers>
</membership>
<roleManager> <!– element may already exist –>
<providers> <!– element may already exist –>
<add
name="DemoRoleProvider"
connectionStringName="MembershipDatabaseCNX"
applicationName="/"
type="System.Web.Security.SqlRoleProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
/>
</providers>
</roleManager>

</system.web>

</configuration>

 

Ta chú ý là bỏ đi thuộc tính defaultProvider của thẻ <membership> và <roles>. Như thế là ta đã cấu hình để SP Central Administration hiểu đựơc và làm việc dc với  database lưu trữ thông tinngười dùng mà chúng ta vừa tạo ở trên.

Bước 4: Cấu hình web.config cho Sharepoint site của chúng ta, để site có thể làm việc với database như chúng ta đã làm với Central Admin Site, điều này được thực hiện dễ dàng  theo các bước như trên. Tuy nhiên ta chú ý thuộc tính defaultProvider trong thẻ <membership> và <roles> phải được thiết lập giống với thuộc tính name của provider tương ứng.

<?xml version="1.0"?>
<configuration xmlns=
"http://schemas.microsoft.com/.NetConfiguration/v2.0"&gt;

<system.web>

<membership defaultProvider="DemoMembershipProvider">

</membership>
<roleManager enabled="true" defaultProvider="DemoRoleProvider">

</roleManager>

</system.web>

</configuration>

 

Bứơc 5: Bật chế độ đăng nhập Form Authentication cho Sharepoint Site

 

ta chú ý là tên của membership provider và role Provider phải trùng khớp với name mà ta thiết lập cho thẻ <membership> và thẻ <roles> trong file web.config của SP Site.

Bứơc 6: Ta thiết lập Site Collection Administrator là tài khỏan user đươc lưu trong sql server thay vì là windows account nhưmặc định. Điều này cho ta thấy được rằng ta vừa customize sp làm vịêc dc vơ1i sql server theo ý muốn của ta.

Bước 7: Đăng nhập

Và bây giờ, ta có thể vào sharepoint site và login với tài khỏan được ta tạo và lưu trên 1 database độc lập trên SQL Server

 

Trên đây là hướng giải quyết của bài toán Custom Form Authentication trong sharepoint, nếu có thể mình sẽ làm 1 đoạn video clip để hướng dẫn các bạn cụ thể hơn trong thao tác.

Community Kit for Sharepoint – User Group Edition

July 28, 2009 1 comment

Mình vừa cài đặt xong phiên bản CKS – UGE, hỗ trợ xây dựng portal cho người dùng online trên sharepoint, post lên chia sẻ cùng các bạn

http://cks.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=1926

Ngoài ra, ta có thể xây dựng mô hình chứng thực SSO trên sharepoint thông qua việc tích hợp Sharepoint với Windows Live ID, source tại đây http://spwla.codeplex.com/

Các bạn có thể xem hướng dẫn tại đây http://blog.solanite.com/keith/WLA/Documentation/Home.aspx