随笔 - 7  文章 - 0 评论 - 3 trackbacks - 1
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

努力!努力!再努力!!
昵称:Endian/骆建峰
园龄:4年3个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

SharePoint

最新评论

阅读排行榜

评论排行榜

推荐排行榜

(*)主要应用场景是sharepoint由于webpart引发的错误根本打不开页面, 可以尝试以下方法.

直接在地址栏键入 http://{hostname}/_layouts/2052/spcontnt.aspx?&url={errorpageurl}.

{hostname} 为你的sharepoint站点服务器的名称

{errorpageurl} 为出现错误的页面的url。

去试试看,有没有效果?^_^

原文参考 http://www.cnblogs.com/wudebin/archive/2005/12/20/300904.html
posted @ 2009-11-16 22:17 Endian/骆建峰 阅读(20) 评论(0) 编辑

项目背景:Exchange的邮件服务器,设定了所有的用户均不能发送外部邮件

项目目的:建一个列表,由用户提交数据,填写:“收件人地址”、“邮件内容”、“标题”、附件,然后利用MOSS自带的审批流程来批准邮件的发出。

具体代码如下:

public override void ItemUpdated(SPItemEventProperties properties)
            {
                //获取触发事件的列表项
                SPSite site = new SPSite(properties.SiteId);
                SPWeb web = site.OpenWeb(properties.OpenWeb().ID);
                SPList list = web.Lists[properties.ListId];
                SPListItem item = list.Items.GetItemById(properties.ListItemId);
                //获取列表项的创建者               
                string strUserValue = Convert.ToString(item["Author"]);
                int intIndex = strUserValue.IndexOf(';');
                int intID = Int32.Parse(strUserValue.Substring(0, intIndex));
                SPUser muser = web.SiteUsers.GetByID(intID);
                //获取审批信息
                SPModerationInformation myMI = item.ModerationInformation;
                string getstate = myMI.Status.ToString();
                if (getstate == "Approved")
                {
                    //设置发邮件的组件
                    MailMessage mail = new MailMessage("infozh@fzh.com", Convert.ToString(item["收件人地址"]));
                    mail.SubjectEncoding = Encoding.UTF8;
                    //邮件主题
                    mail.Subject = Convert.ToString(item["标题"]);
                    mail.IsBodyHtml = false; //是否允许内容为 HTML 格式
                    mail.BodyEncoding = Encoding.UTF8;
                    //邮件内容
                    mail.Body = Convert.ToString(item["邮件内容"]);
                    //邮件的回复地址,用户不能发但能收
                    mail.ReplyTo = new MailAddress(muser.Email, muser.Name);
                    mail.From = new MailAddress("infozh@fzh.com", muser.Email);
                    //添加附件
                    for (int i = 0; i < item.Attachments.Count; i++)
                    {
                        string strPath = item.Attachments.UrlPrefix + item.Attachments[i].ToString(); //要发送附件的网址
                        string strFileName = strPath.Substring(strPath.LastIndexOf("/") + 1); ;   //文件名
                        WebClient wc = new WebClient();
                        MemoryStream m = new MemoryStream();
                        wc.UseDefaultCredentials = true;
                        byte[] fs = wc.DownloadData(strPath);
                        m = new MemoryStream(fs);  //将文件抓取下来,存于内存中.
                        Attachment ma = new Attachment(m, strFileName);
                        mail.Attachments.Add(ma);
                    }
                    //设置验证信息
                    SmtpClient smtp = new SmtpClient("mailserver");
                    smtp.Credentials = new NetworkCredential("username", "password"); //SMTP 验证
                    smtp.Send(mail);
                    mail.Attachments.Dispose(); //邮件发送完毕,释放对附件的锁定
                    sentinform(mail.Subject, muser.Email, Convert.ToString(item["收件人地址"]));
                }
            }
           
            //发送通知邮件
            void sentinform(string substr,string soueml,string tareml)
            {
                MailMessage sentok = new MailMessage("moss@fzh.com", soueml);
                sentok.SubjectEncoding = Encoding.UTF8;
                sentok.Subject = "ANN:您提交的发送外网邮件已发送成功";
                sentok.Body = "已发送的邮件主题是:" + substr + "  收件人地址是:" + tareml;
                SmtpClient smtp1 = new SmtpClient("mailserver");
                smtp1.Credentials = new NetworkCredential("username", "password"); //SMTP 验证
                smtp1.Send(sentok);
            }
 

posted @ 2008-09-24 17:27 Endian/骆建峰 阅读(192) 评论(0) 编辑

Sharepoint 中,使用Form认证后,为了使用资源管理器打开文档,使用SharepointDesigner打开编辑页面时能够正常进行,用户登陆时必须手动选择 自动登陆。

为了解决这个问题,我修改了login.aspx文件
1、首先在 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS 下找到login.aspx文件,一般都放在这里,除非你修改过默认的_layouts路径。
2、找到如下代码:

  1. <asp:login id="login" FailureText="<%$Resources:wss,login_pageFailureText%>" runat=server width="100%">
  2. {.... ....}
  3. </table>
  4. </layouttemplate>
  5. </asp:login>

3、在</layouttemplate>前,添加如下代码:

下载: login.js
  1. <script type="text/javascript"><!--
  2. document.getElementById("ctl00_PlaceHolderMain_login_RememberMe").checked=true;
  3. // --></script>

这样做可以使自动登陆文字前的checkbox默认下就选中,这样用户就不需要手动选择了
4、如果不想让用户看到这个自动登陆的选项,可以对 自动登陆 所在的行进行隐藏。首先要找到如下代码

  1. <tr>
  2. <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
  3. </tr>

这段代码就是用来显示自动登陆文字及自动登录文字前的checkbox的。
现在对<tr>添加display=none的属性对其进行隐藏:

  1. <tr style=”display:none”>
  2. <td colSpan=2><asp:CheckBox id=RememberMe Enabled=”False” text=”<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>” runat=server /></td>
  3. </tr>

这样,就解决了Sharepoint中使用Form认证后强制自动登陆的问题。
Form验证方式下,Sharepoint总是有这样那样的问题,比如需要开启客户端集成等等,其登陆页面也及其丑陋,有时间要研究一下如何修改自定义登陆页面。

posted @ 2008-05-15 16:50 Endian/骆建峰 阅读(265) 评论(0) 编辑
修改Web应用程序根目录上的Web.config文件中的两个地方:
查找以下位置并更改即可(红色为更改前后的值)
一、MaxControls="200" CallStack="false"   改为  MaxControls="200" CallStack="true"
二、customErrors mode="On"  改为  customErrors mode="Off"

从此以后就可以对出错一目了然了。
posted @ 2008-03-12 14:27 Endian/骆建峰 阅读(536) 评论(3) 编辑

将你的Asp.NET应用程序嵌入到SharePoint 读后感

第一点:将生成的dll拷贝到网站目录下bin文件夹

第二点:在网站web.config文件的<SafeControls></SafeControls>节点中添加以下(目的是把应用程序注册为安全类型)
<SafeControl Assembly="WebInMOSS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="WebInMOSS" TypeName="*" Safe="True" />
说明:其中WebInMOSS为应用程序的命名空间

第三点:删除页面的AutoEventWireup="true"属性

第四点:Web.config 文件的<SharePoint>节点,在 <PageParserPaths> </PageParserPaths>
节点下增加一个虚拟路径 <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" />
声明此站点下所有文件允许服务器端事件,当然你也可以制定虚拟目录是那个文件夹,但是这个值 必须以 ~/ 或 / 开头,并且必须以文件名或 * 结尾。
(目的为允许服务器端事件的运行)

第五点:把web.config文件的enableSessionState属性设为true(如果此应用程序要使用到Session的话)
<pages enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false"

pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,

PublicKeyToken=71e9bce111e9429c" asyncTimeout="7">

第六点:在网站web.config文件的<SafeControls></SafeControls>节点中添加以下(目的是允许应用程序使用用户控件)
<SafeControl Src="~/Pages/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" />
说明:其中Pages是用户控件所在的文档库

原文地址:
http://www.cnblogs.com/Clank/archive/2007/05/21/754073.html
http://www.cnblogs.com/Clank/archive/2007/06/07/762576.html

posted @ 2007-11-23 16:21 Endian/骆建峰 阅读(540) 评论(0) 编辑
posted @ 2007-11-21 16:26 Endian/骆建峰 阅读(466) 评论(0) 编辑
posted @ 2007-11-13 13:50 Endian/骆建峰 阅读(683) 评论(1) 编辑