zoukankan      html  css  js  c++  java
  • How to configure your MyInbox webpart automatically ?

    How to configure your MyInbox webpart automatically ?

     

    It seems to be so difficult to configure your SharePoint Outlook webparts automatically, but it isn't !

    Last week, I tried everything, but I failed to configure those Outlook webparts.
    It seems to be nobody wants to configure a MyInbox automatically for every user on the MySite. I didn't found any website or blog with information, I just found some questions on forums without an answer.

    So, Can I conclude that every user must know the servername and his mailboxname ?
    No, it's irrealistic in my opinion !
    This morning, I had 'one of my famous intelligent moments' *d'oh*

    So, here's the one and only, the solution !

    Follow the autoConfig lab below to succeed the configuration for every user at runtime

    1. Create a new Webpart Library project
    2. Override the CreateChildControls

    // import section
    using Microsoft.SharePoint.Portal.WebControls;

    // attributes
    private OWAInboxPart wpInbox;

    protected override void CreateChildControls()
    {
    // inbox webpart
    wpInbox = new OWAInboxPart();
    Controls.Add(configureInbox(wpInbox));

    }

    3. Create a new method to configure your Inbox webpart. This method will determine the mailboxname and the servername at runtime for a particular user.

    private OWAInboxPart configureInbox(OWAInboxPart wpInbox)
    {
    //Connect to the portal and get the portal context.
    TopologyManager topology = new TopologyManager();
    PortalSite portal = topology.PortalSites[new Uri(
    http://servername)];
    PortalContext context = PortalApplication.GetContext(portal);

    //initialize user profile config manager object
    UserProfileManager profileManager = new UserProfileManager(context);
    UserProfile prof = profileManager.GetUserProfile(true);



    // use the profile object to retrieve the properties you need in your company to
    // retrieve the mailboxname
    // example: string workmail = prof[PropertyConstants.WorkEmail].ToString();
    wpInbox.MailboxName = "kristofdc";

    wpInbox.OWAServerAddressRoot = "http://servername/exchange";

    return wpInbox;

    }

    4. Override the RenderWebPart method

    protected override void RenderWebPart(HtmlTextWriter output)
    {
    try
    {
    wpInbox.RenderControl(output);
    }
    catch(Exception ex)
    {
    output.Write(ex.ToString());
    }

    }

    5. And finally you will add a CAB-setup for your custom webpart.
    6. Just compile, deploy and use !

    Remarks:
    This MyInbox example works also with the MyCalendar & MyTasks.

    Success garanteed !


  • 相关阅读:
    js Worker 线程
    C#接口
    C# 委托
    陆金所面试题
    spark-groupByKey
    spark完整的数据倾斜解决方案
    Spark Streaming
    用SparkSQL构建用户画像
    Spring Cloud底层原理(转载 石杉的架构笔记)
    TCC分布式事务的实现原理(转载 石杉的架构笔记)
  • 原文地址:https://www.cnblogs.com/ahghy/p/2831918.html
Copyright © 2011-2022 走看看