這次要為大家介紹的是站台上登入登出功能的做法
一般使用在內網其實不太需要用到登入與登出 , 通常是發佈到外網的站台才需要
當然要實現登入登出功能 , 就必須讓使用者能匿名訪問
不過本篇著眼於登入登出功能 , 匿名訪問的功能 , 請參考管理員指南手冊
所以在已經完成匿名設置的前提下 , 如何讓使用者登入呢 ?
當我們完成匿名設置時 , IIS上網站的目錄安全性設定是只勾選匿名存取的
由於我們需要能登入 , 所以必須再勾選基本驗證或是整合性驗證(集成驗證)
(我是兩個都勾選,這樣我內網就不需要輸入帳號密碼了...我比較懶...^_^)
IIS設置完成後 , 再來就是SPS部分與Webpart開發了.
SPS配置很簡單 , 找出網站根目錄下的Web.config , 我是用預設的網站 ,
所以在 C:\INETPUB\WWWROOT\ 底下
在 APPSetting下加一筆Key....
</SharePoint>
<appSettings>
<add key="SPS-EnforceIISAnonymousSetting" value="false" />
</appSettings>
<system.web>
( 對於 Web.config 不熟的朋友 , 找到 </SharePoint> 與 <system.web> 加上
<appSettings>
<add key="SPS-EnforceIISAnonymousSetting" value="false" />
</appSettings>
這行是什麼意思呢? 我沒查到 , 不過字面上看來是把SPS強制匿名給關掉 ... )
存檔就搞定了....接下來就是Webpart 的部份了
明眼人應該有看出來 , 其實十一是用兩個Webpart 來完成這個效果 ,
以經驗來克服技術 , 簡單的方式完成高級的功能才是王道呀...哈哈哈...
實際如下圖 :
因為每個人需求不同 , 所以本篇我只介紹 登入與登出 Button 的做法 , 其他應用端看各位
1.登入
SPS的登入 , 除了在Web.config 上加 <add key="SPS-EnforceIISAnonymousSetting" value="false" /> 外
在登入時也必須有特殊的用法 .
明眼人打開原始碼會看到
<input type="submit" name value="登入" class="UserButton" onclick="MSOWebPartPage_SignIn();" />
這個東西...沒錯 , 就是這麼簡單 . 加上這個按鈕搭配web.config 的設定就ok了 .
不過十一怎麼加都不成功...暈死...怎辦呢?
沒關係 , 山不轉路轉 ,Frontpage 不給我加 , 我就寫Webpart ....
方式也很簡單 ....
是以Microsoft.SharePoint.WebPartPages.WebPart 裡的 AuthenticationButton Class來實現
public class WebPart1 : Microsoft.SharePoint.WebPartPages.WebPart
{
private AuthenticationButton AuthButton;
protected override void RenderWebPart(HtmlTextWriter output)
{
AuthButton.RenderControl(output);
}
protected override void CreateChildControls()
{
AuthButton = new AuthenticationButton();
Controls.Add(AuthButton);
}
}
不用懷疑 , 這樣就好了....
各位完成後會發現 , 怎麼登入後按鈕就不見了 .....各位現在知道為何我要做成兩個webpart了吧
2.登出
嘿嘿...同樣的....登出部份我們也用原始碼來看看....
<script language="JavaScript" type="text/javascript">
function wplogout()
{
try {
if (navigator.appVersion.indexOf('MSIE 6.0') > 0)
{
document.execCommand('ClearAuthenticationCache','false');
alert('您已經登出此網站。請注意:如果你使用Internet Explorer 6.0而並沒有安裝Service Pack 1時,
你需要關閉所有的瀏覽器視窗才算完成登出程序。');
self.location.href = '.';
}
else if ((navigator.appVersion.indexOf('MSIE 6.0') > 0 || navigator.appVersion.indexOf('MSIE 5.0') > 0 ||
navigator.appVersion.indexOf('MSIE 5.5') > 0))
{
alert('請注意:如果你使用Internet Explorer 5.x時,
你需要關閉所有的瀏覽器視窗才算完成登出程序。');
}
else
{
alert('此功能僅支援Internet Explorer 6.0 Service Pack 1或更高版本。');
}
}
catch (e)
{
alert('此功能僅支援Internet Explorer 6.0 Service Pack 1或更高版本。');
}
}
</script>
<INPUT type="button" onClick="wplogout()" value='登出' >
其實這段我也是抄來的 , 看到某個網站有登出功能 , 就打開原始碼看看 , 依樣畫葫蘆就完成了 .
document.execCommand('ClearAuthenticationCache','false');
這個function 實際的使用方式我也沒有去研究 .
有興趣的朋友可以研究看看喔....