private void GetFile(string fileAction, string fileId)
        {
            string fileCheck = Localization.GetString("StoreFile", LocalResourceFile);
            string postData = "";
            Dictionary<string, string> settings = PortalController.GetPortalSettingsDictionary(ModuleContext.PortalId);
            var ps = new PortalSecurity();
            string username = ps.DecryptString(settings["Store_Username"], Config.GetDecryptionkey());
            string password = ps.DecryptString(settings["Store_Password"], Config.GetDecryptionkey());
            postData = postData + "username="******"&password="******"&fileid=" + fileId;

            WebRequest request = WebRequest.Create(fileCheck);

            request.Method = "POST";
            // Create POST data and convert it to a byte array.

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();

            WebResponse wr = request.GetResponse();
            string myfile = "";
            string cd = wr.Headers["Content-Disposition"];
            if (cd != null && cd.Trim() != "" && cd.StartsWith("inline;filename="))
            {
                myfile = cd.Replace("inline;filename=", "");
            }

            var objResponse = HttpContext.Current.Response;

            if (fileAction == "download")
            {
                objResponse.AppendHeader("Content-Disposition", "attachment; filename=\"" + myfile + "\"");
                objResponse.AppendHeader("Content-Length", wr.ContentLength.ToString());
                objResponse.ContentType = wr.ContentType;

                const int bufferLength = 4096;
                byte[] byteBuffer = new byte[bufferLength];
                Stream rs = wr.GetResponseStream();
                int len = 0;
                while ((len = rs.Read(byteBuffer, 0, byteBuffer.Length)) > 0)
                {
                    if (len < bufferLength)
                    { objResponse.BinaryWrite(byteBuffer.Take(len).ToArray()); }
                    else
                    { objResponse.BinaryWrite(byteBuffer); }
                    objResponse.Flush();
                }
            }
        }
Exemplo n.º 2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (!Page.IsPostBack)
            {
                PortalSecurity ps = new PortalSecurity();
                Dictionary<string, string> settings = PortalController.GetPortalSettingsDictionary(ModuleContext.PortalId);
                if (settings.ContainsKey("Store_Username"))
                { txtUsername.Text = ps.DecryptString(settings["Store_Username"], Config.GetDecryptionkey()); }

                if (settings.ContainsKey("Store_Username"))
                { txtPassword.Text = ps.DecryptString(settings["Store_Password"], Config.GetDecryptionkey()); }
            }
        }
        protected void GetExtensions()
        {
            try
            {
                string fileCheck = Localization.GetString("StoreFile", LocalResourceFile);
                string postData = "";
                Stream oStream;
                Dictionary<string, string> settings =
                    PortalController.GetPortalSettingsDictionary(ModuleContext.PortalId);
                var ps = new PortalSecurity();
                string username = ps.DecryptString(settings["Store_Username"], Config.GetDecryptionkey());
                string password = ps.DecryptString(settings["Store_Password"], Config.GetDecryptionkey());
                postData = postData + "username="******"&password="******"POST";
                // Create POST data and convert it to a byte array.
                byte[] byteArray = Encoding.UTF8.GetBytes(postData);

                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = byteArray.Length;

                Stream dataStream = request.GetRequestStream();
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();

                WebResponse response = request.GetResponse();
                oStream = response.GetResponseStream();
                XmlTextReader oReader;
                XPathDocument oXMLDocument;
                oReader = new XmlTextReader((oStream));


                var dt = new DataTable();
                //instance of a datarow  
                DataRow drow;
                //creating two datacolums Column1 and Column2   
                var dcol1 = new DataColumn("Package", typeof (string));
                var dcol2 = new DataColumn("Filename", typeof (string));
                var dcol3 = new DataColumn("Download", typeof (string));

                var dcol4 = new DataColumn("Deploy", typeof (string));
                //adding datacolumn to datatable  
                dt.Columns.Add(dcol1);
                dt.Columns.Add(dcol2);
                dt.Columns.Add(dcol3);
                dt.Columns.Add(dcol4);
                oReader.XmlResolver = null;
                try
                {
                    oXMLDocument = new XPathDocument(oReader);
                }
                catch (Exception)
                {
                    grdSnow.EmptyDataText = LocalizeString("NoData");
                    grdSnow.DataBind();
                    return;
                }

                XPathNavigator nav = oXMLDocument.CreateNavigator();
                XPathNodeIterator iterator = nav.Select("orders/order/orderdetails/orderdetail");
                int i = 0;
                while (iterator.MoveNext())
                {
                    //instance of a datarow  
                    drow = dt.NewRow();
                    //add rows to datatable  
                    dt.Rows.Add(drow);
                    string packageName = iterator.Current.GetAttribute("packagename", "").Replace("'", "''").Trim();
                    string fileName = iterator.Current.SelectSingleNode("files/file").GetAttribute("filename", "");
                    string fileId = iterator.Current.SelectSingleNode("files/file").GetAttribute("fileid", "");
                    string deploy = iterator.Current.SelectSingleNode("files/file").GetAttribute("deploy", "");
                    //add Column values  
                    dt.Rows[i][dcol1] = packageName;
                    dt.Rows[i][dcol2] = fileName;

                    PortalSettings _portalSettings = PortalController.Instance.GetCurrentPortalSettings();
                    dt.Rows[i][dcol3] = "<a class='dnnPrimaryAction' href='" +
                                        Globals.NavigateURL(_portalSettings.ActiveTab.TabID, Null.NullString,
                                                            "fileAction",
                                                            "download", "fileid", fileId) + "'>" +
                                        LocalizeString("download") + "</a>";


                    if (deploy == "true")
                    {
                        dt.Rows[i][dcol4] = "<a class='dnnPrimaryAction' href=" + "\"" +
                                            ModuleContext.EditUrl("fileID", fileId, "Download", "package",
                                                                  Server.UrlPathEncode(packageName)) + "\"" + ">" +
                                            LocalizeString("deploy") + "</a>";
                    }
                    else
                    {
                        dt.Rows[i][dcol4] = "N/A";
                    }
                    i = i + 1;
                }


                grdSnow.DataSource = dt;
                grdSnow.DataBind();
            }
            catch (Exception)
            {
                grdSnow.EmptyDataText = LocalizeString("NoData");
                grdSnow.DataBind();
            }
        }
Exemplo n.º 4
0
        private void ProcessSnowcovered(string downloadURL, string installFolder, string catalogAction)
        {
            string fileCheck = downloadURL;
            string postData = "";
            Stream oStream;
            Dictionary<string, string> settings = PortalController.GetPortalSettingsDictionary(ModuleContext.PortalId);
            PortalSecurity ps = new PortalSecurity();
            string username = ps.DecryptString(settings["Store_Username"], Config.GetDecryptionkey());
            string password = ps.DecryptString(settings["Store_Password"], Config.GetDecryptionkey());
            postData = postData + "username="******"&password="******"&fileid=" + ViewState["fileId"].ToString();

            WebRequest request = WebRequest.Create(fileCheck.ToString());

            request.Method = "POST";
            // Create POST data and convert it to a byte array.
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();

            WebResponse response = request.GetResponse();

            string myfile = "";

            var cd = response.Headers["Content-Disposition"];
            if (cd != null && cd.Trim() != "" && cd.StartsWith("inline;filename="))
            {
                myfile =cd.Replace("inline;filename=", "");
            }

            DownloadDeploy(response, myfile, installFolder, catalogAction);

            UI.Skins.Skin.AddModuleMessage(this, String.Format(GetString("deploySuccess"), ViewState["extName"]), ModuleMessage.ModuleMessageType.GreenSuccess);
            installExtension.NavigateUrl = Util.InstallURL(ModuleContext.TabId, "", ViewState["extType"].ToString(), myfile.ToLower().Replace(".zip", ".resources").ToString());
            installExtension.Visible = true;
            deployExtension.Visible = false;
        }
Exemplo n.º 5
0
 /// <summary>
 /// extract value base on naming container and key from PersonalizationInfo object
 /// function will automatically decrypt value to plaintext
 /// </summary>
 /// <param name="personalization">Object containing user personalization info</param>
 /// <param name="namingContainer">Container for related set of values</param>
 /// <param name="key">Individual profile key</param>
 /// <returns></returns>
 public static object GetSecureProfile(PersonalizationInfo personalization, string namingContainer, string key)
 {
     if (personalization != null)
     {
         var ps = new PortalSecurity();
         return ps.DecryptString(personalization.Profile[namingContainer + ":" + key].ToString(), Config.GetDecryptionkey());
     }
     return "";
 }
Exemplo n.º 6
0
        /// <summary>
        /// Tries to validate a verification code sent after a user is registered in a portal configured to use a verified registration.
        /// </summary>
        /// <param name="verificationCode">The verification code.</param>
        /// <returns>An null string if the verification code has been validated and the user has been approved. An error message otherwise.</returns>
        /// <exception cref="DotNetNuke.Entities.Users.UserAlreadyVerifiedException">Thrown when provided verification code has been already used.</exception>
        /// <exception cref="DotNetNuke.Entities.Users.InvalidVerificationCodeException">Thrown when the provided verification code is invalid.</exception>
        /// <exception cref="DotNetNuke.Entities.Users.UserDoesNotExistException">Thrown when the user does not exist.</exception>
        public static void VerifyUser(string verificationCode)
        {
            Requires.NotNullOrEmpty("verificationCode", verificationCode);

            var portalSecurity = new PortalSecurity();
            var decryptString = portalSecurity.DecryptString(verificationCode, Config.GetDecryptionkey());
            var strings = decryptString.Split('-');
            
            if (strings.Length != 2)
            {
                throw new InvalidVerificationCodeException();
            }

            int portalId;
            int userId;

            if (!int.TryParse(strings[0], out portalId) || !int.TryParse(strings[1], out userId))
            {
                throw new InvalidVerificationCodeException();
            }

            var user = GetUserById(int.Parse(strings[0]), int.Parse(strings[1]));
            
            if (user == null)
            {
                throw new UserDoesNotExistException();
            }
            
            if (user.Membership.Approved)
            {
                throw new UserAlreadyVerifiedException();
            }

            if (!user.IsInRole("Unverified Users"))
            {
                // A Registered User that has been unapproved has managed to get a valid verification code
                throw new InvalidVerificationCodeException();
            }

            user.Membership.Approved = true;
            UpdateUser(portalId, user);
            ApproveUser(user);
        }
        private void UserSwitch()
        {
            if (Request.QueryString[FeatureController.QS_LOGINID] != null ||
                    Request.Cookies[FeatureController.QS_LOGINID] != null)
            {
                var loginid = string.Empty;
                if (Request.QueryString[FeatureController.QS_LOGINID] != null &&
                    PortalSettings.ActiveTab.TabID != PortalSettings.HomeTabId)
                {
                    // run this if not on the homepage
                    var qsValue = Request.QueryString[FeatureController.QS_LOGINID];
                    loginid = HttpUtility.UrlDecode(qsValue);
                    // necessary because UrlDecode doesn't properly translate the decoded string
                    loginid = loginid.Replace(" ", "+");
                }
                else
                {
                    // work around for a HTTP 301 redirect issue on homepages in DNN 07.01.00
                    // https://dnntracker.atlassian.net/browse/CONTENT-1561
                    loginid = Request.Cookies[FeatureController.QS_LOGINID].Value;
                }

                if (string.IsNullOrEmpty(loginid) == false)
                {
                    var sec = new PortalSecurity();

                    // decrypt the id
                    var userId = sec.DecryptString(loginid, PortalSettings.GUID.ToString());
                    int newUserId = int.Parse(userId, NumberStyles.Integer);

                    ProcessLogin(newUserId);
                }
            }
        }