MOSS用那麼久了,有人採用AD認證,有人採用FORM認證,我們公司是採用中間的替換方法,因為採用FORM認證個人覺得還是不是太方便,例如需要開兩個連接埠等。個人有個做法把經驗共用給大家,如果做得不對或者有更好的辦法的話,可以聯絡我。
1.原因
為什麼要進行表單登入,預設MOSS採用AD認證,是因為使用者預設儲存為AD,如果有人要把使用者和以前的系統進行結合的方式,那麼請採用正規的FORM認證進行開發。
我今天要講的是AD認證,AD認證有個不好的方式就是彈出對話方塊,介面不友好,例如我要在介面上放一個忘記密碼的方式是完全做不到的。
1.png (28.73 K)2008-4-2 19:46:08
</P>
現在教大家一種採用表單進行提交的簡單方法。其實這個辦法很早的時候十一就搞過,不複雜,我只是稍微完善了一下。
1.首先採用匿名訪問。
1.1IIS開啟匿名訪問。
2.png (11.46 K)2008-4-2 19:46:40
</P>
1.2檢查器提供者需要開啟。操作方式:管理中心--》應用程式管理--》應用程式安全性--》檢查器提供者--》預設
3.png (18.17 K)2008-4-2 19:46:56
</P>
1.3開啟網站匿名訪問。操作為:網站操作--》進階許可權--》設定--》匿名訪問,如下
4.png (18.57 K)2008-4-2 19:47:22
<BR></P>
2.設定登入介面
我們需要開發一個登入介面。輸入使用者。密碼。
5.png (215.05 K)2008-4-2 19:49:53
</
這個登入介面可以放在_LAYOUTS/目錄底下。
登入介面代碼請見附件。
需要改幾個地址如下:
http://www.cnblogs.com/sharepoint/test/default.aspx 這個介面是需要驗證的介面(預設網站已經開了匿名,只需要驗證到其他一個非匿名訪問的地址即可)
http://10.49.28.7 這個是我們要返回的介面
如果還不清楚的。可以訪問http://keji.lickies.cn 查看。
3.登入後自動跳轉到登入介面的方式,因為我們已經開放了匿名,預設我們是可以進去的,那麼我們需要增加一段程式,判斷如果AD使用者為空白的話則跳轉到登入介面。
我們採用一個辦法是在MASTERPAGE裡增加一個USERCONTROL
如何做呢?開啟預設的在12/TEMPLATE/GLOBRAL/DEFAULT.MASTER(如果有改過則到SPD裡找)
在
<%@ Register TagPrefix="wssuc" TagName="Welcome" src="~/_controltemplates/Welcome.ascx" %>
下增加
<%@ Register TagPrefix="wssuc" TagName="login" Src="~/_controltemplates/chklogin9.ascx" %>
在<BODY scroll="yes" onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();">
下增加
<wssuc:login id="chklogin" runat="server" EnableViewState="false"></wssuc:login>
可能很多人在問CHKLOGIN.ascx是啥。
就是我們的使用者控制項,,,這個檔案如下。附件可以下載。。
<%@ Control Language="C#" Inherits="Microsoft.SharePoint.ApplicationPages.WebControls.ActionBar,Microsoft.
SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" compilationMode="Always" %>
<%@ Register Tagprefix="wssawc" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%
if(HttpContext.Current.User.Identity.Name.ToString()=="")
{
Response.Redirect("/_layouts/web/login.aspx");
}
%>
請把這個檔案放到c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES下即可。
大概寫了一下。有問題的話,大家QQ群聯絡。