自定义Sharepoint的登陆页面(2)

现在你可以修改这个独立的_layouts文件夹中的文件且不会影响到其他站点了。

  注意:管理中心的一些操作,比如拓展一个站点或者改变认证模式,将会重置Sharepoint站点的_layouts虚拟目录到默认的文件夹下,你需要重新进行上面的操作步骤。

  Login.aspx页面及其模板页

  打开login.aspx页面,你很快会发现这其实是一个内容页面,只包含了一些标签,如表格布局、用户名输入框、密码框登录按钮以及一个记住我的复选 框。这些标签只足以实现一个登录框的基本功能,但是远不足以让页面变得更加漂亮,更加复杂。login.aspx页面继承于_layouts文件夹下的 simple.master模板页,他的样式由simple.master来决定。下面这段代码你可以在login.aspx的头部找到,这段代码将 Login.aspx和simple.master关联起来。

  <%@ Page Language="C#" Inherits="Microsoft.SharePoint.ApplicationPages.LoginPage" MasterPageFile="~/_layouts/simple.master"%>

  当你开始考虑修改登录表单的样式时,你必须先明确你的目标。如果你想要修改表单周围的样式,你必须编辑simple.master模板页。如果你想要修改表单,比如重置控件、添加额外的帮助语句、图片等,你需要修改login.aspx登录页。

  修改simple.master模板页

  正如大部分的模板页一样,或者说相对于一些独立的页面,simple.master控制着页面的样式。事实上,他控制着_layouts文件夹下7个页面的样式。

页面 相关描述
AccessDenied.aspx 当你的请求被拒绝时,将在此页面显示一个警告信息。这个页面将同时显示当前登录的用户以及用另一个用户登录的链接。
Confirmation.aspx 显示请求的操作成功完成的信息。
Error.aspx 错误显示页面。
Login.aspx 登录页面。
ReqAcc.aspx 当请求被拒绝时,将在此页面显示一个警告
Signout.aspx 点击注销后显示的页面。
Webdeleted.aspx 删除网站后显示的页面。

  原则上,访问使用表单认证的Sharepoint站点的用户,将经常浏览到以上页面,因此你必须明确改动simple.master将对你的 Sharepoint站点产生多大的影响。但是基于上面的这七个页面,问题在于你可以修改simple.master中的哪些东西,以及哪些东西必须保 留。模板页包含很多ContentPlaceHolders控件,这些ContentPlaceHolders控件决定了一个内容页面中哪些部分是可以插 入内容的。内容页面中包含了很多Content控件,这些Content控件与模板页中的ContentPlaceHolders控件相关联。如果一个内 容页面关联着模板页中的ContentPlaceHolders控件,而你删除了这个ContentPlaceHolders控件,那么就会出现错误。因 此,修改模板页的关键在于不要删除任何必须的ContentPlaceHolders控件。

  模板页中的一些ContentPlaceHolders控件可能为某个页面所需要,但是其他页面并不需要,因此很难判断一个 ContentPlaceHolders控件是否是必须的。比如说,simple.master中有一个叫PlaceHolderPageImage的控 件,如果你把他删除了,Login.aspx页面不会出错因为login.aspx页面并没有关联到这个控件,但是AccessDenied.aspx会 出错,因为这个页面需要使用PlaceHolderPageImage来插入一些小图标。Simple.master页面还只是控制着七个页面的布局样 式,测试你是否删除了一个必须的控件可能不会花费很多的时间,但是在其他的模板页就没有怎么幸运了。比如application.master控制着超过 200个页面的布局和样式。

  避免删除必须控件的一个方法是将他们在页面上隐藏起来。大概操作如下:

  1、打开模板页文件

  2、在页面的底部,添加一个隐藏的面板控件,代码如下:

<asp:panel runat="server" visible="false">
     </asp:panel>

 

  3、通览内容页上的所有标签,在模板页上找到所有对应的ContentPlaceHolders控件或者其他一些起相同作用的服务器控件

  4、每找到一个ContentPlaceHolders控件(或者一个服务器控件),剪切并粘贴到刚刚添加的隐藏面板中

  完成之后,模板页上的所有服务器控件将完全的被包含在一个隐藏面板中。查看所有相关联的页面,由于所有的控件仍然存在,这些页面将不会显示任何错误。当 然,所有页面元素也都被隐藏掉了。现在你可以开始编辑模板页的样式了,比如为贵公司的图片添加一些品牌元素。你也可以再回到模板页往里面添加一些你需要的 服务器控件了。

posted @ 2012-03-27 15:20  江南轻舞飞扬  阅读(318)  评论(0编辑  收藏  举报