Académique Documents
Professionnel Documents
Culture Documents
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using rcw.PMIContactObjects;
//Save Message...
public string strSaveMsg = "Data has been saved successfully.";
//Error Message...
public string strErrMsg = "Error in saving data, please try later.";
//Encryption...
string plainText = ""; // original plaintext
string cipherText = ""; // encrypted string
string passPhrase = "Pas5pr@se"; // can be any string
string initVector = "@1B2c3D4e5F6g7H8"; // must be 16 bytes
csHashKeyValidation.CreateHashPreviousKey(csHashKeyValidation.GENERICHash,
strUserKeyFromQueryString);
if ((csHashKeyValidation.hash.ToUpper() !=
strHashKeyFromQueryString) && (csHashKeyValidation.hashprev.ToUpper() !=
strHashKeyFromQueryString))
{
Response.Write("<p style='text-align:center'><b>UnAuthorized
Access.</b></p>");
Response.End();
}
Session["UserKey"] = strUserKeyFromQueryString;
}
else
{
if (Convert.ToString(Session["UserKey"]) == "")
{
Response.Write("<p style='text-align:center'><b>UnAuthorized
Access.</b></p>");
Response.End();
}
//UserKey...
intUserKey = Convert.ToInt32(Session["UserKey"]);
divPassError.InnerHtml = "";
divPassError.Attributes.Add("class", "updateMessage");
if (!Page.IsPostBack)
{
//Password txtBoxes on Enter key press post the form...
txtCurPass.Attributes.Add("onkeydown", "if(event.which ||
event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {if
(BrowserDetect.browser == 'Explorer'){document.getElementById('" +
lnkChnPassSave.UniqueID + "').click();}else{document.getElementById('" +
lnkChnPassSave.UniqueID + "').onclick();}return false;}} else {return true}; ");
txtNewPass.Attributes.Add("onkeydown", "if(event.which ||
event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {if
(BrowserDetect.browser == 'Explorer'){document.getElementById('" +
lnkChnPassSave.UniqueID + "').click();}else{document.getElementById('" +
lnkChnPassSave.UniqueID + "').onclick();}return false;}} else {return true}; ");
txtConfPass.Attributes.Add("onkeydown", "if(event.which ||
event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {if
(BrowserDetect.browser == 'Explorer'){document.getElementById('" +
lnkChnPassSave.UniqueID + "').click();}else{document.getElementById('" +
lnkChnPassSave.UniqueID + "').onclick();}return false;}} else {return true}; ");
}
}
}
protected void lnkChnPassSave_Click(object sender, EventArgs e)
{
Type typObj = typeof(pmiUser);
pmiUser pmUser = new pmiUser();
string strErr = "";
string strHashKey = "";
string strChagePassXml = "";
string strWebServiceUrl = "";
UCMHashKeyValidation csHashKeyValidation = new UCMHashKeyValidation();
SecureWebService.net_olmWebService ws = new
SecureWebService.net_olmWebService();
try
{
if (ValidatePwd(txtCurPass.Text, txtNewPass.Text, txtConfPass.Text, ref
strErr))
{
csHashKeyValidation.CreateHashKey(csHashKeyValidation.GENERICHash,
intUserKey.ToString());
strHashKey = csHashKeyValidation.hash;
strChagePassXml += "<HASHKEY>" + strHashKey + "</HASHKEY>";
strChagePassXml += "</USER></ChangePInput>";
strWebServiceUrl = "https://";
strWebServiceUrl +=
Request.ServerVariables["SERVER_NAME"].ToString();
strWebServiceUrl += "/" + Session["dotnet_path"].ToString();
strWebServiceUrl += "/net_olmWebService.asmx";
ws.Url = strWebServiceUrl;
//RijndaelEnhanced....(Encryption)
// Before encrypting data, we will append plain text to a random
// salt value, which will be between 4 and 8 bytes long (implicitly
// used defaults).
plainText = strChagePassXml;
RijndaelEnhanced rijndaelKey = new RijndaelEnhanced(passPhrase,
initVector);
cipherText = rijndaelKey.Encrypt(plainText);
if (!ws.CngP(cipherText))
{
divPassError.InnerHtml = strErrMsg;
}
else
{
divPassError.InnerHtml = "Password changed successfully.";
divPassError.Attributes.Add("class", "bodytext_1");
}
//strErr = ws.CngP1(cipherText);
//divPassError.InnerHtml = strErr;
}
else
{
divPassError.InnerHtml = strErr;
}
}
catch
{
divPassError.InnerHtml = strErrMsg;
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(pmUser);
}
}
private bool ValidatePwd(string strCurrpass, string strPwd1, string strPwd2,
ref string strRet)
{
string strValid =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
char chrTemp;
if (strCurrpass.Length == 0)
{
strRet = "You must fill in current password value.";
return false;
}
//Check Current Password...
if (!strCurrpass.Equals(Session["password"]))
{
strRet = "Please check your current password.";
return false;
}
if (strPwd1.Length < 4 || strPwd1.Length > 10)
{
strRet = "New password length should be between 4 and 10 characters.";
return false;
}
if (strPwd2.Length < 4 || strPwd2.Length > 10)
{
strRet = "Re-enter new password. Length should be between 4 and 10
characters.";
return false;
}
if (strPwd1 == strCurrpass)
{
strRet = "The new password you entered is the same as your old
password. Please change your password.";
return false;
}
if (strPwd1 != strPwd2)
{
strRet = "The two entries for your new password do not match. Please
re-enter your new password in both fields.";
return false;
}
}
private string get_EasyPasswords()
{
string strRet = "";
string strTmp = "";
try
{
rcw.pmiFileObject.pmiFileMaint pFM = new
rcw.pmiFileObject.pmiFileMaint();
string strFileLoc = Session["easypasswordsLocation"].ToString();
strTmp = pFM.ReadAll(ref strFileLoc);
Regex regEx = new Regex(@"\s+");
string[] t = regEx.Split(strTmp);
strRet = "," + string.Join(",", t).ToLower() + ",";
}
catch
{
}
return strRet;
}
}