SharePoint 2010 在允許匿名訪問的網站中隱藏登陸連結

來源:互聯網
上載者:User

標籤:sharepoint   2010   匿名訪問   登陸連結   隱藏   

SharePoint 2010 在允許匿名訪問的網站中隱藏登陸連結        最近在使用Welcome.ascx使用者控制項時,發現很多東西都是要靠它來呈現。比如這裡,關於在網站中對於匿名訪問使用者隱藏登陸連結也與它有關。        大概分兩個步驟完成這樣功能。非常簡單。需要用到主版頁面和SharePoint Application Page link控制項。1. 複製Welcome.ascx控制項,命名CustomWelcome.ascx。覆蓋OnLoad事件,給匿名使用者隱藏登陸應用程式頁面連結。2. 在主版頁面中引用這個自訂的CustomWelcome.ascx。        在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES中你會找到Welcome.ascx檔案,複製後開啟CustomWelcome.ascx檔案。你會看到對於驗證使用者,很多功能表項目如我的設定、以其他使用者身份登陸、登出等是可用的。在ID“ExplicitLogOut”下所有功能表項目是可用的。你可以看到,Personal Actions控制項是不可見的,當使用者被成功驗證後可見。
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Control Language="C#" Inherits="Microsoft.SharePoint.WebControls.Welcome,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"   AutoEventWireup="false" compilationMode="Always" %>  <SharePoint:PersonalActions accesskey="<%$Resources:wss,personalactions_menu_ak%>" ToolTip="<%$Resources:wss,open_menu%>" runat="server" id="ExplicitLogout" Visible="false"><CustomTemplate> <SharePoint:FeatureMenuTemplate runat="server" FeatureScope="Site" Location="Microsoft.SharePoint.StandardMenu" GroupId="PersonalActions" id="ID_PersonalActionMenu" UseShortId="true" > <SharePoint:MenuItemTemplate runat="server" id="ID_PersonalInformation" Text="<%$Resources:wss,personalactions_personalinformation%>" Description="<%$Resources:wss,personalactions_personalinformationdescription%>" MenuGroupId="100" Sequence="100" ImageUrl="/_layouts/images/menuprofile.gif" UseShortId="true" /> <SharePoint:MenuItemTemplate runat="server" id="ID_LoginAsDifferentUser" Text="<%$Resources:wss,personalactions_loginasdifferentuser%>" Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>" MenuGroupId="200" Sequence="100" UseShortId="true" /> <SharePoint:MenuItemTemplate runat="server" id="ID_RequestAccess" Text="<%$Resources:wss,personalactions_requestaccess%>" Description="<%$Resources:wss,personalactions_requestaccessdescription%>" MenuGroupId="200" UseShortId="true" Sequence="200" /> <SharePoint:MenuItemTemplate runat="server" id="ID_Logout" Text="<%$Resources:wss,personalactions_logout%>" Description="<%$Resources:wss,personalactions_logoutdescription%>" MenuGroupId="200" Sequence="300" UseShortId="true" /> <SharePoint:MenuItemTemplate runat="server" id="ID_PersonalizePage" Text="<%$Resources:wss,personalactions_personalizepage%>" Description="<%$Resources:wss,personalactions_personalizepagedescription%>" ImageUrl="/_layouts/images/menupersonalize.gif" ClientOnClickScript="javascript:ChangeLayoutMode(true);" PermissionsString="AddDelPrivateWebParts,UpdatePersonalWebParts" PermissionMode="Any" MenuGroupId="300" Sequence="100" UseShortId="true" /> <SharePoint:MenuItemTemplate runat="server" id="ID_SwitchView" MenuGroupId="300" Sequence="200" UseShortId="true" /> <SharePoint:MenuItemTemplate runat="server" id="MSOMenu_RestoreDefaults" Text="<%$Resources:wss,personalactions_restorepagedefaults%>" Description="<%$Resources:wss,personalactions_restorepagedefaultsdescription%>" ClientOnClickNavigateUrl="javascript:SP.SOD.execute('browserScript', 'MSOWebPartPage_RestorePageDefault')" MenuGroupId="300" Sequence="300" UseShortId="true" /> </SharePoint:FeatureMenuTemplate></CustomTemplate></SharePoint:PersonalActions>
        另一部分是作為SharePoint Application Page Link的使用者控制項ExplicitLogin。
<SharePoint:ApplicationPageLink runat="server" id="ExplicitLogin"ApplicationPageFileName="Authenticate.aspx" AppendCurrentPageUrl=trueText="<%$Resources:wss,login_pagetitle%>" style="display:none" Visible="false" />
        這個連結我們需要研究一下。預設是不可見的;當使用者未被認證時出現。也就是匿名使用者看到的。這樣他們就可以登陸了。        我們在CustomWelcome.ascx控制項中加入指令碼,覆蓋OnLoad事件,為非驗證使用者隱藏ExplicitLogin連結。
protected override void OnLoad(EventArgs e)    {        //base.OnLoad(e);        base.OnLoad(e);        if (HttpContext.Current.User.Identity.IsAuthenticated)        {            this.ExplicitLogout.Visible = true;        }        else        {            this.ExplicitLogin.Visible = false;            this.ExplicitLogin.Attributes.CssStyle.Add("display", "block");        }     }
        在主版頁面引用這個自訂的CustomWelcome.ascx檔案。
<%@ Register TagPrefix="wssuc" TagName="CustomWelcome" src="~/_controltemplates/CustomWelcome.ascx" %>
        儲存。重新進入網站,就會看到,對於未驗證使用者,登陸連結已經看不到了。
        但是我發現,左上方的選項卡異常。
        找到主版頁面中語句:
<wssuc:Welcome id="IdWelcome" runat="server" EnableViewState="false"></wssuc:Welcome>
        添加Visible="False"後,重新整理首頁。恢複正常。

        如果你看懂了Welcome.ascx檔案及其結構,你會發現自訂變得容易而且有趣。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.