|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其实net网页编程之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是net网页编程的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。微软的Sharepoint2007中同意利用表单认证,可是利用表单认证后默许的登录页面利用起来想当的无趣。假如你只是在外部利用Sharepoint,那就无所谓登录页面了,由于这个时分你大概在利用windows认证体例(windows认证下表单登录的页面是不会利用到的)。表单认证常常呈现于一些面向internet的大概是面向客户的站点,这个时分站点的抽象长短常的主要的,为了使sharepoint站点可以跟用户有一个好的交互,能够供应给用户一个优秀的界面,模板页是很主要的。可是,当你将一个模板页提交给一个sharepoint网站,大概修正一个TeamSite的网站时,你很快会发明你没有修正到登录界面。在这篇文章里,我们一同来看看怎样往修正登录画面。
假如你想晓得怎样在Sharepoint2007中完成表单认证,请检察ConfiguringFormsAuthenticationinSharePoint2007.login.aspx文件寄存在甚么中央呢?
利用Form认证后,一旦你会见一个被回护的页面时,Sharepoint都将把你重定向到登录页面(如图一)。在登录页面下,检察扫瞄器的地点栏,你会发明login.aspx页面是安排在_layouts文件夹下的。但是在你安排Sharepoint使用程序的当地文件夹,并没有任何一个名为_layouts的文件夹。对良多人来说,这大概一点也不奇异,由于良多我们能够会见到的Sharepoin页面其实不真正存在于体系中。可是,翻开IIS办理器,我们能够在Sharepoint网站中看到_layouts文件夹现实上是一个假造目次,而这个假造目次指向的是寄存于服务器上的一个实在的文件夹中,一样平常的这个文件夹的路径以下(只需你有安装Sharepoint到默许的路径上):
C:ProgramFilesCommonFilesMicrosoftSharedWebServerExtension12 emplatelayouts
<br>
Sharepoint站点所试用到的使用程序和体系页面就是安排在这个layouts文件夹下的。上传一个文件到Sharepoint站点上,你将所利用到layouts文件夹中的upload.aspx页面。你也能够在layouts文件夹中的people.aspx页面中检察同意会见站点的用户列表。一样的,假如你想要登录网站,你就必需会见login.aspx页面。在layouts文件夹下,一共有400个页面文件,每一个文件都有他共同的功效和作用,因而一一举行懂得是不太大概的。
修正_layouts文件夹中的文件所酿成的全局影响
找到使用体系文件地点的地位后,你大概会急不成耐地翻开一个编纂器,盘算入手下手修正内里的文件,可是,你也许应当在编纂之前弄分明你的修正将会形成甚么样的影响。还记得Sharepoint站点中的_layouts文件夹是一个指向“C:ProgramFilesCommonFilesMicrosoftSharedWebServerExtension12 emplatelayouts”路径的假造目次么?是的,你在统一服务器上所创建的一切的Sharepoint站点的_layouts目次都是如许设置的。这意味着,你为某个站点而在_layouts文件夹下所做的任何修改,都将影响到服务器上的其他的站点。这也一样意味着你所修正的内容在你的体系上只要独一的一个版本,因而你最好做个备份。不然,一旦你不幸举行了误操纵,你必需从头安装Sharepoint才干够使这些文件从头一般运转。
创立一个站点独享的_layouts假造目次
如上所述,同时变动服务器上一切的站点的页面可好可坏。假如一切的站点都用一样的结构、界面及功效,那末请间接在_layouts文件夹中做修正(最幸亏备份_layouts文件夹后修正)。可是假如每一个站点互不不异,那末间接举行修正是不成行的。这个时分,你能够创立一个站点独享的_layouts文件夹,在这个独享的文件夹中举行修正。按照上面的步骤举行创立一个独自站点独享的_layouts文件夹:1、翻开C:ProgramFilesCommonFilesMicrosoftSharedWebServerExtension12 emplate文件夹
2、选中layouts文件夹,拷贝之
3、翻开想要变动的Sharepoint站点的根目次
4、粘贴layouts文件夹到Sharepoint站点的根目次上
5、重定名layouts文件夹为_layouts
6、翻开IIS办理器
7、睁开响应的Sharepoint网站节点
8、对着_layouts假造目次单击右键,从弹出菜单当选择属性
9、在弹出的属性窗口中,选择假造目次选项卡,修正当地路径,让他指向方才创建的_layouts文件夹
10、点击OK,举行使用变动 如今你能够修正这个自力的_layouts文件夹中的文件且不会影响到其他站点了。
注重:办理中央的一些操纵,好比拓展一个站点大概改动认证形式,将会重置Sharepoint站点的_layouts假造目次到默许的文件夹下,你必要从头举行下面的操纵步骤。
Login.aspx页面及其模板页
翻开login.aspx页面,你很快会发明这实际上是一个内容页面,只包括了一些标签,如表格结构、用户名输出框、暗码框登录按钮和一个记着我的复选框。这些标签只足以完成一个登录框的基础功效,可是远不敷以让页面变得加倍大度,加倍庞大。login.aspx页面承继于_layouts文件夹下的simple.master模板页,他的款式由simple.master来决意。上面这段代码你能够在login.aspx的头部找到,这段代码将Login.aspx和simple.master联系关系起来。<%@PageLanguage="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、在页面的底部,增加一个埋没的面板控件,代码以下:
[quote]<asp:panelrunat="server"visible="false">
</asp:panel> 3、通览内容页上的一切标签,在模板页上找到一切对应的ContentPlaceHolders控件大概其他一些起不异感化的服务器控件
4、每找到一个ContentPlaceHolders控件(大概一个服务器控件),剪切并粘贴到方才增加的埋没面板中
[/quote]完成以后,模板页上的一切服务器控件将完整的被包括在一个埋没面板中。检察一切相干联的页面,因为一切的控件仍旧存在,这些页面将不会显现任何毛病。当然,一切页面元素也都被埋没失落了。如今你能够入手下手编纂模板页的款式了,好比为贵公司的图片增加一些品牌元素。你也能够再回到模板页往内里增加一些你必要的服务器控件了。
假如你以为猎奇,上面列出了simple.master所必要的一切ContentPlaceHolders控件:·PlaceHolderAdditionalPageHead
·PlaceHolderPageTitle
·PlaceHolderSiteName
·PlaceHolderTopNavBar
·PlaceHolderTitleBreadcrumb
·PlaceHolderPageImage
·PlaceHolderPageTitleInTitleArea
·PlaceHolderMain
·PlaceHolderPageDescription 大概你也会想保存一个叫ScriptLink1的ScriptLink控件,由于他包括了大批的JavaScript。
修正登录页面
修正一个内容页没有修正一个模板那末伤害,由于一切的毛病bug都只呈现在内容页面自己。你能够事前举行备份,并在每次修正后革新扫瞄器来检察是不是堕落。和模板页类似的是,在内容页中必需注重某些把持全部页面的类,他们依附着页面上的某些特别的元素。假如这些类所必要的页面元素丧失了,那末页面将抛出一个毛病。假如你不但愿某些工具显现出来,将他放进埋没面板,而非间接修正页面代码。
对内容页面所做的修正迥然不同,基础上都是增加一些分外的内容和修正页面结构。但是,必要明白的是,Sharepoint一切的页面的是基于ASP.NET手艺的。一样的,这些页面可使用修正一般的ASP.NET页面的办法举行修正,只需你乐意他也同意你举行大批的修改。好比说修正登录页login.aspx。我们能够在登录页面上找到以下代码:<%@PageLanguage="C#"
Inherits="Microsoft.SharePoint.ApplicationPages.LoginPage"
MasterPageFile="~/_layouts/simple.master"%> 注重到登录页面联系关系着simple.master作为他的模板页,他的功效承继自Microsoft.SharePoint.ApplicationPages.LoginPage类。假如你不但愿登录页面利用模板页,你完整能够删撤除MasterPageFile属性,并在login.aspx中删除一切相干的标签。我不保举这么做,可是你能够怎样做。大概你不喜好Microsoft.SharePoint.ApplicationPages.LoginPage控制全部页面的体例,你也能够删除这个元从来完整删除全部页面的逻辑,大概将他指向其他的类。假如你删除这个承继元素,你仍旧能够经由过程在Login.aspx上间接增加一些服务端剧本,来为这个页面誊写自界说的代码。我在我的login.aspx页面上安排了以下的代码,这个页面一般完成了登录的功效:<%@PageLanguage="C#"%>
<scriptrunat="server">
protectedoverridevoidOnLoad(EventArgse)
{
Response.Write("Thisisfromtheonloadevent");
base.OnLoad(e);
}
</script>
<html>
<body>
<formrunat="server">
<asp:loginid="login"runat="server"/>
</form>
</body>
</html> 关于处置一个Sharepoint页面的处置模板页和把持类,这相对不是一种好的体例。可是这的确为修正页面供应了一种天真的办法。
结论
你如今晓得在哪能够找到Sharepoint的登录页login.aspx和把持登录页款式和结构的模板文件了。也懂得了在_layouts文件夹中修改页面所酿成的全局影响,和当你必要对单个站点举行修正时,怎样制止影响服务器上的其他站点了。同时你也失掉了针对修正模板页的一些好的引导了,和了解了我们能够对内容页举行任何想要做的修正。
因而,你应当试着往对登录页大概其他Sharepoint使用页面举行任何你想做的修改了。
来自:http://www.yeeyan.com/articles/view/jecoso/15234
原文:http://www.simple-talk.com/dotnet/.net-tools/customizing-the-login-page-in-sharepoint-2007/
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。 |
|