modify owa 2013 top navigation bar

--

1.app_code/a.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Security;

using System.Security.Principal;



using System.IO;

using System.Text;

using System.Web.UI;





namespace ZY

{

    public class M1 : IHttpModule

    {



        public void Dispose()

        {



        }



        public void Init(HttpApplication application)

        {



            if (application != null)

            {



                application.PostMapRequestHandler += (o, e) =>

                {

                    HttpContext context = ((HttpApplication)o).Context;

                    

                };



                application.BeginRequest += (o, e) =>

                {

                    var app = (HttpApplication)o;

                    var Response = app.Response;

                    var Request = app.Request;

                    string urlFlag = "userspecificresourceinjector.ashx";

                    if (Request.Url.ToString().ToLower().Contains(urlFlag))

                    {

                        //Response.Buffer = true;

                    }

                };

            }



		application.PreSendRequestHeaders += new EventHandler(application_PreSendRequestHeaders);

		application.PreSendRequestContent += new EventHandler(application_PreSendRequestContent);



        }

		





        void application_PreSendRequestHeaders(object sender, EventArgs e)

        {

            HttpApplication application = (HttpApplication)sender;

            application.Context.Response.Headers.Set("X-Frame-Options","");

	    application.Context.Response.Headers.Remove("X-Frame-Options");

	    //response.setHeader("Access-Control-Allow-Origin", "*");

	    //application.Context.Response.Headers.Set("Access-Control-Allow-Origin","*");

	    application.Context.Response.Headers.Set("Access-Control-Allow-Origin","https://sp2013.temp.local");

	    application.Context.Response.Headers.Set("P3P","CP=CAO PSA OUR");

	    application.Context.Response.Headers.Set("allow-credentials","true");

	    application.Context.Response.Headers.Set("Access-Control-Allow-Credentials","true");

 



//userspecificresourceinjector.ashx





        }



  

        void application_PreSendRequestContent(object sender, EventArgs e)

        {

            HttpApplication application = (HttpApplication)sender;

            //application.Context.Response.Write("application_PreSendRequestContent<br/>");

		//var Response=application.Context.Response;

            var Response = System.Web.HttpContext.Current.Response;

		var Request=application.Context.Request;

		string urlFlag="userspecificresourceinjector.ashx";

		if(Request.Url.ToString().ToLower().Contains(urlFlag))

		{

            

            //Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);

            //Response.Expires = 0;

            //Response.CacheControl = "no-cache";

            //Response.AddHeader("Pragma", "No-Cache");



            Response.ContentType = "application/javascript; charset=utf-8";

            //Response.StatusCode = 200;



            //Response.Write("includeScriptsAndStyles(slabManifest, \"/owa/auth/aa.js?\");");

            //Response.Write("includeScriptsAndStyles(slabManifest, \"/jquery-1.9.1.js?\");");

            //Response.Write("document.write(\"<script type='text/javascript' src='/owa/auth/jquery-1.9.1.js'></script>\");");

            //Response.Write("var zyflag=true;");

            Response.Write("document.write(\'<script type=\"text/javascript\" src=\"/owa/auth/aa.js?x=" + System.DateTime.Now.Millisecond.ToString() + "\"></script>\');");

            //Response.Write("document.write(\'<script type=\"text/javascript\" src=\"/owa/auth/aa.js?x=\"></script>\');");

            //Response.Write("eval(\"<script type='text/javascript' src='/owa/auth/aa.js'></script>\");");

            //Response.Flush();



		    }

        }







    }

}

  2.web.config

a.

<system.web>

      <machineKey validationKey="AutoGenerate,IsolateApps" />

      <compilation defaultLanguage="c#" debug="true">







b.

  <serverRuntime uploadReadAheadSize="0" />

      <modules>

        <remove name="ServiceModel" />

        <remove name="ServiceModel-4.0" />

        <remove name="Session" />

        <remove name="Profile" />

        <!--remove name="UrlMappingsModule" /-->

        <add name="HttpProxy" type="Microsoft.Exchange.HttpProxy.ProxyModule,Microsoft.Exchange.FrontEndHttpProxy,Version=15.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="" />

        <add name="cafe_exppw" />

        <add name="zy" type="ZY.M1" />

      </modules>

3.owa\auth\aa.js

//alert('09');



function findMenu() {

    var menuStr = "<span width=\"100%\" align=\"center\"><span onclick='window.open(\"/ecp/PersonalSettings/EditAccount.aspx?chgPhoto=1&rfr=owa\")' class=\"_b_f\" \">Profile</span>|<span onclick='window.location.href=\"/owa/logoff.owa\"' class=\"_b_f\">Logout</span></span>";;

    //alert('aa');

    //var item2 = $('.button _n_3 _n_f');

    //var item2 = document.getElementsByClassName('button _n_3 _n_f');

    var item2 = document.getElementsByClassName('_n_e')[0];

    item2.parentNode.parentNode.innerHTML = menuStr

    return;

    if (item2) {

        //item2.setAttribute('onclick', 'alert(1)');

        bindEvent(item2, 'click', function () {

           // alert(0);

            var myVar = setInterval(function () {

                window.clearInterval(myVar)

                var menu = document.getElementsByClassName('_f_tp');

                if (menu) {

                    var logout = menu[0];

                    if (logout) {

                        logout.innerHTML = menuStr;

                    }

                }

            }, 20);                       

        });

    }

}



function bindEvent(element, type, handler) {

    if (element.addEventListener) {

        element.addEventListener(type, handler, false);

    } else {

        element.attachEvent('on' + type, handler);

    }

}



    function logoutOWA()

    {

        alert('logout');

    }



/*

$(function () {

        findMenu();



    }

);*/







bindEvent(this, 'load', function () {
var strSPNavigationBtn= '<button tabindex="-1" onclick="window.open(\'https://intern.abc.net.cn\');" class="button _n_q" id="_ariaId_110" role="menuitemradio" aria-checked="false" aria-selected="false" aria-labelledby="_ariaId_11" tempid="id=navigationItem;path=Application/Views/Common/HeaderNavigationView.htm"><img class="_b_e" role="presentation" style="display: none;" src="1x1.gif"><span class="_b_f" id="_ariaId_110">Intern Sharepoint</span></button>'
 
   
document. getElementById( '_ariaId_10'). parentNode. parentNode. insertAdjacentHTML( 'afterBegin', strSPNavigationBtn);


    findMenu();

});

 

document.getElementById('_ariaId_10').parentNode.parentNode.innerHTML=document.getElementById('_ariaId_10').parentNode.parentNode.innerHTML + '<b onclick="alert(0)">abc</b>'

 

你可能感兴趣的:(top)