這次要為大家介紹的是站台上登入登出功能的做法
一般使用在內網其實不太需要用到登入與登出 , 通常是發佈到外網的站台才需要
當然要實現登入登出功能 , 就必須讓使用者能匿名訪問
不過本篇著眼於登入登出功能  , 匿名訪問的功能 , 請參考管理員指南手冊

所以在已經完成匿名設置的前提下 , 如何讓使用者登入呢 ?

當我們完成匿名設置時 , 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 實際的使用方式我也沒有去研究 .
有興趣的朋友可以研究看看喔....

posted on 2006-12-05 18:55  volitation  阅读(365)  评论(0)    收藏  举报