Introduction
This Article is about the password resetting in Windows live domain Accounts.This article is meant for the developers who want to manage the domain for windows live.
Background
The code can be used by the developers to reset the password of a windows live ID.Some of the difficulties that I faced while developing this small utility was that,when you try to access the web services from the following url(https://domains.live.com/service/managedomain2.asmx)using a proxy Server you might be asked to give the credentials of the proxy server.And many of you would not like to do so,so build the application on a system which has a direct access to internet.
Using the code
The code is quite straigth forward,
Step 1. Add the Web reference from the given url to your solution.I have named it livedomain in my example.
Step 2. Feed the Admin username and password to the given code
Step 3. Feed the mail address of the Windows live user ,of whom you need to change the password.
Step 4. Run the Application to see instant results.
using System.Net;
using System.Text;
try
{
livedomain.ManageDomain2 srvc = new livedomain.ManageDomain2();
string loginUrl = srvc.GetLoginUrl("Admin User ID");
string loginTemplate = srvc.GetLoginDataTemplate().Replace("%NAME%", "Admin USer ID").Replace("%PASSWORD%", "Admin Password");
string loginTicket = PostWebData(loginUrl, loginTemplate);
if (srvc.VerifyAuthData(loginTicket))
{
livedomain.ManageDomain2Authorization srvcAuth = new livedomain.ManageDomain2Authorization();
srvcAuth.authorizationType = livedomain.ManageDomain2AuthorizationType.PassportTicket;
srvcAuth.authorizationData = loginTicket;
srvc.ManageDomain2AuthorizationValue = srvcAuth;
}
else
throw new ApplicationException("An error occurred while attempting to create an authorization ticket");
string memberName = "Users Mail address whose password needs to be changed";
string newPassword = "New password";
srvc.ResetMemberPassword(memberName, newPassword, true);
Response.Write("Member password has been changed");
}
catch (Exception ex)
{
Response.Write(String.Format("The following error occurred" + " while changing the member password: {0}", ex.Message));
}
}
private static string PostWebData(string URL, string postContent)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] tmpBytes = encoding.GetBytes(postContent);
request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentLength = postContent.Length;
request.UserAgent = "Mozilla/4.0 (compatible;" +
"MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
Stream newStream = request.GetRequestStream();
request.AllowAutoRedirect = true;
newStream.Write(tmpBytes, 0, tmpBytes.Length);
response = (HttpWebResponse)request.GetResponse();
string result = new StreamReader(response.GetResponseStream()).ReadToEnd();
newStream.Close();
return result;
}
The above code is developed in Asp.net C# 2.0.
Points of Interest
One can use text boxes to get the input from the user,regarding the email account ,admin user ID password etc ..Hope this Article has helped you to get the utility working