sharepoint 自定义服务器代码的页面(一)

大概2年前刚刚接触sharepoint开发的时候,由于不熟悉,总想套用asp.net的页面开发,
现在总结一下如何自定义sharepoint页面开发。
首先明确sharepoint的页面类型(参照msdn)
1 母板页,就是决定整个site风格的页面,默认情况下是这个文件
C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/GLOBAL/default.master
2 应用程序页/_layout页,这些页面时存在IIS虚拟目录中的,也就是说物理存在的,默认情况下存在于
C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/LAYOUTS文件夹下,
通常我们不会改动这些页面,他们不能添加web部件。
3 内容页面, 指的就是通常可以承载webpart的页面,这种页面可以用sharepoint designer修改和查看,
默认没有被spd修改,分成2个部分存储,一部分在前端的web服务器,另一部分在sharepoint内容数据库中,
用spd修改后,就存储在sharepoint数据库中,区别我就不说了。
明确了3种类型后,就可以开发了。
(1) 用spd开发含有代码的内容页面,在spd中创建一个页面,并且加入如下代码
<script type="text/c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
 this.Response.Write("Hello World!");
}
</script> 
右键在浏览器中预览,会出现异常

这是因为sharepoint做了安全限制,默认是不允许添加后台代码的。
但是我们可以通过修改webconfig文件,让它正常运行。
<PageParserPaths>
 <PageParserPath VirtualPath="/Dalian/custompage1.aspx" CompilationMode="Always" AllowServerSideScript="true" />
</PageParserPaths>

 


虽然通过这种方法我们可以写入服务器端代码,但是不推荐这样做
原因是这样相当于变相的提升了某些用户的权限,只要可以通过spd
访问这个页面,就可以编写服务器代码了,安全性降低了。
(2)自定义应用程序页面,这种页面和我们平时开发的asp.net页面,这种页面可以部署
在LAYOUTS文件夹或者虚拟目录下(我没有试过),我喜欢用Feature来部署。
第一步 创建一个asp.net工程,会得到一个aspx文件和一个dll文件(不用codebehind就不用dll了)
添加个简单的代码
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Response.Write("Hello World!");
        }
第二步 部署,创建一个Feature, 一个文件夹“CusPage”在...12/TEMPLATE/FEATURES/下并且包含2个xml文件
    Feature.xml如下:
 <Feature
 Id="274FC071-C858-4cd2-A602-61D2275A9139"
 Title="Customize Page"
 Description="Customize Page ..."
 Scope="Web"
 Hidden="FALSE"
 xmlns="http://schemas.microsoft.com/sharepoint/" >
 <ElementManifests >
  <ElementManifest Location="Elements.xml"/>
 </ElementManifests>
 </Feature>
    Elements.xml如下:
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
 <Module Name="CustomizePage" >
  <File Url ="CustomPage1.aspx" Type="Ghostable" IgnoreIfAlreadyExists ="TRUE"  />
 </Module>
</Elements>
把第一步中的aspx文件也放到这个目录下, 把dll文件放到对应sharepoint网站的bin目录下
打开命令行执行

在网站设定中,启用这个feature

 

结果


这样就OK了,并且打开spd会看到这个页面, 但是看到页面我们就会意识到问题了,这个页面和我们sharepoint页面
风格不一致,而且我们可能还要使用webpart在这个页面,这两个问题时可以解决的,
会在下回的文章中写如何解决他们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义 SharePoint 登录页面的后台代码,需要进行以下步骤: 1. 创建一个新的 SharePoint 项目,并添加一个新的 Application Page。 2. 在 Application Page 中添加一个 ASP.NET 登录控件,以便用户可以输入其凭据。 3. 使用 SharePoint 对象模型或 CSOM(客户端对象模型)来验证用户凭据。 4. 如果凭据有效,则将用户重定向到 SharePoint 站点的默认页面。 以下是一个简单的示例代码,可以作为参考: ```c# using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using System; using System.Web.UI.WebControls; namespace CustomLoginPage.Layouts.CustomLoginPage { public partial class Login : LayoutsPageBase { protected void Page_Load(object sender, EventArgs e) { // Check if the user is already authenticated if (SPContext.Current.Web.CurrentUser != null) { // Redirect to the default page SPUtility.Redirect(SPContext.Current.Web.Url, SPRedirectFlags.Default, HttpContext.Current); } } protected void LoginButton_Click(object sender, EventArgs e) { // Authenticate the user using SharePoint object model or CSOM bool isAuthenticated = AuthenticateUser(UsernameTextBox.Text, PasswordTextBox.Text); if (isAuthenticated) { // Redirect to the default page SPUtility.Redirect(SPContext.Current.Web.Url, SPRedirectFlags.Default, HttpContext.Current); } else { // Display an error message ErrorLabel.Text = "Invalid username or password"; } } private bool AuthenticateUser(string username, string password) { // TODO: Authenticate the user using SharePoint object model or CSOM // You can use the following code to authenticate the user using SharePoint object model: //using (SPSite site = new SPSite(SPContext.Current.Web.Url)) //{ // using (SPWeb web = site.OpenWeb()) // { // if (web.Site.WebApplication.UseClaimsAuthentication) // { // return SPClaimsUtility.AuthenticateFormsUser( // Context.Request.UrlReferrer, // username, // password); // } // else // { // return web.Authenticate(username, password); // } // } //} // Replace the above code with your own authentication logic return true; } } } ``` 请注意,此示例仅演示了如何在后台代码中验证用户凭据。要完全自定义 SharePoint 登录页面,您还需要编写自己的 HTML 和 CSS 代码,以及处理其他相关的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值