Custom Form Authentication trong Office Sharepoint Server 2007Mì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ẻ
Trang 1Custom Form Authentication trong Office Sharepoint Server 2007
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
Trang 3 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"
Trang 4
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
Trang 5machine 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">
<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"
Trang 6/>
</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">
<system.web>
<membership defaultProvider="DemoMembershipProvider">
</membership>
<roleManager enabled="true" defaultProvider="DemoRoleProvider">
</roleManager>
Trang 7</system.web>
</configuration>
Bứơc 5: Bật chế độ đăng nhập Form Authentication cho Sharepoint Site
Trang 9ta 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.
Trang 10Bướ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
Trang 11Trê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.