Muhanad YOUNIS

Access OWA with C# inside Asp.net Site

One of my work needs was to open OWA inside our web application to make clients more related with the application and let them easy access their emails while working. After some researches i found a simple way to do that, actually it is not that much hard to find the code below, but you have to search well to find it!. An here is the way that i have done that, we have a page with 2 iframes inside it. Upper frame holds the links banner and the bottom frame which holds whatever is clicked from the links banner. The work is to open OWA inside the bottom Banner. To open OWA you have to create a small JavaScript for that which will send the user name and password to be authenticated in from owaauth.dll and if everything goes fine you'll successed to open your email. The code is as below;

public partial class OpenOwaPage : System.Web.UI.Page
{
    private string userName;
    private string passWord;

    protected void Page_Load(object sender, EventArgs e)
    {
      
            passWord = "password";
            userName ="username";
            Response.Write(CreateOWAFrom());
            Response.Write(LoadOWAPostJS("logonForm"));
      
    }

    private string LoadOWAPostJS(string strFormId)
    {
        //Constructs the JS needed to post the data to Realex and returns it
        StringBuilder strScript = new StringBuilder();
        strScript.Append("<script language='javascript'>");
        strScript.Append("var ctlForm = document.forms.namedItem('{0}');");
        strScript.Append("ctlForm.username.value=\"" + userName + "\";");
        strScript.Append("ctlForm.password.value=\"" + passWord + "\";");
        strScript.Append("ctlForm.submit();");
        strScript.Append("</script>");
        return String.Format(strScript.ToString(), strFormId);

    }

    private string CreateOWAFrom()
    {
        //Constructs the Realex HTML form and returns it
        StringBuilder strForm = new StringBuilder();
        strForm.AppendLine("<form id=\"logonForm\" name=\"logonForm\" target=\"_self\" action=\"https://your_Owa_Adress/exchweb/bin/auth/owaauth.dll\" method=\"post\">");
        strForm.AppendLine("<input type=\"hidden\" name=\"destination\" value=\"https://your_Owa_Adress/exchange/\"/>");
        strForm.AppendLine("<input type=\"hidden\" name=\"flags\" value=\"0\"/>");
        strForm.AppendLine("<input type=\"hidden\" name=\"username\" id=\"username\"/>");
        strForm.AppendLine("<input type=\"hidden\" name=\"password\" id=\"password\"/>");
        strForm.AppendLine("<input type=\"hidden\" id=\"SubmitCreds\" name=\"SubmitCreds\" value=\"Connection\"/>");
        strForm.AppendLine("<input type=\"hidden\" id=\"rdoRich\" name=\"forcedownlevel\" value=\"0\"/>");
        strForm.AppendLine("<input type=\"hidden\" id=\"rdoPublic\" name=\"trusted\" value=\"0\"/>");
        strForm.AppendLine("</form>");
        return strForm.ToString();

    }

Sometimes you maybe not able to access your OWA because of your Browser configuration, add your OWA website address to your Browser trusted site to solve this problem. If you do not want to logoff from OWA with the regular logoff button, read this (click here). Otherwise you'll enter OWA any time you type OWA address.

Hope This Helps

Posted: Oct 12 2008, 11:10 AM by mohi88 | with 6 comment(s) |
Filed under: , , ,

Comments

ergin said:

nice tutorial ... thanks..

# October 27, 2008 5:11 AM

Fahad said:

Is this technique will work with OWA 2007 ?

actually i have tried this but iam still getting my logon screen?

any clue?

# November 1, 2008 2:01 AM

mohi88 said:

yes it does work with owa 2007, I'm using it with 2007. i do not know why you are not loggin but please check your security option on your browser. by the way, you might have hard time with Firefox! because this script do not work with firefox. getting the logon screen means that you are not authenticated yet! and some times from the browser secturiy options. Try to add your owa address to your trusted sites. if you are not able to access again you can email me from the contact page.

# November 1, 2008 3:04 AM

Fahad said:

Got It Dear have to Change Some parameters :D

# November 1, 2008 4:06 AM

Yari said:

Can someone help further? It does not work for me..

Should I copy paste into new file "as is" or need some modification?

# January 8, 2009 7:44 AM

mohi88 said:

you need to change this line

your_owa_adress/.../owaauth.dll\

you need to provide your owa address there.

and provide a right user name and password.

# January 8, 2009 9:24 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)