コード例 #1
0
        public static bool GenerateReport(string exportDirectory, ScheduleContent scheduleContent, string userName, string password)
        {
            LogExtension.LogInfo("Report exporting started", MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password);
            var exportStatus = false;

            //try
            //{
            //    if (Directory.Exists(exportDirectory + scheduleContent.ScheduleId))
            //    {
            //        Array.ForEach(Directory.GetFiles(exportDirectory + scheduleContent.ScheduleId), File.Delete);
            //    }
            //    else
            //    {
            //        Directory.CreateDirectory(exportDirectory + scheduleContent.ScheduleId);
            //    }

            //    var thread = new Thread(delegate()
            //    {
            //        try
            //        {
            //            var reportContent = new ReportWriter();
            //            reportContent.ReportingServer = new UMPServer();
            //            reportContent.ReportServerCredential =
            //    new System.Net.NetworkCredential(userName, password);
            //            reportContent.ReportServerUrl = GlobalAppSettings.SystemSettings.BaseUrl + "/api/reportserverapi";
            //            reportContent.ReportPath = scheduleContent.ItemId.ToString();

            //            switch (scheduleContent.ExportTypeId)
            //            {
            //                case ExportType.Pdf:
            //                    reportContent.Save(
            //                        exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName +
            //                        ".pdf", WriterFormat.PDF);
            //                    break;

            //                case ExportType.Excel:
            //                    reportContent.Save(
            //                        exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName +
            //                        ".xls", WriterFormat.Excel);
            //                    break;

            //                case ExportType.Word:
            //                    reportContent.Save(
            //                        exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName +
            //                        ".doc", WriterFormat.Word);
            //                    break;

            //                default:
            //                    reportContent.Save(
            //                        exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName +
            //                        ".html", WriterFormat.HTML);
            //                    break;
            //            }
            //        }
            //        catch (Exception ex)
            //        {
            //            exportStatus = false;
            //            LogExtension.LogError("Exception while exporting report", ex, MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password + " ScheduleId - " + scheduleContent.ScheduleId + " ExportTypeId" + scheduleContent.ExportTypeId);
            //        }
            //        exportStatus = true;
            //    });
            //    thread.SetApartmentState(ApartmentState.STA);
            //    thread.Start();
            //    thread.Join();
            //}
            //catch (Exception ex)
            //{
            //    exportStatus = false;
            //    LogExtension.LogError("Exception while exporting report", ex, MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password + " ScheduleId - " + scheduleContent.ScheduleId + " ExportTypeId" + scheduleContent.ExportTypeId);
            //}
            return(exportStatus);
        }
コード例 #2
0
        public ActionResult Login(string username, string password, string remember, string returnUrl)
        {
            var tokenCryptography = new TokenCryptography();

            if (username != null && password != null)
            {
                var ipAddress         = Request.UserHostAddress;
                var encryptedUsername = tokenCryptography.Encrypt(username, ipAddress);
                var encryptedPassword = tokenCryptography.Encrypt(password, ipAddress);
                LogExtension.LogInfo("Login Encryption done", MethodBase.GetCurrentMethod(), " UserName - " + username + " Password - " + password + " Remember - " + remember + " ReturnUrl - " + returnUrl);

                var headers = new Dictionary <string, object>
                {
                    {
                        "Authorization",
                        Convert.ToBase64String(Encoding.UTF8.GetBytes(encryptedUsername + ":" + encryptedPassword))
                    }
                };
                LogExtension.LogInfo("Login API requested", MethodBase.GetCurrentMethod());
                var apiResponse = _javaScriptSerializer.Deserialize <ApiResponse>(_apiHandler.ApiProcessor("/api/accounts/login", headers,
                                                                                                           new Dictionary <string, object>()));

                var apiData = DictionaryHelper.GetObject(apiResponse.Data as Dictionary <string, object>, typeof(ApiData)) as ApiData;

                LogExtension.LogInfo("Login API Data received", MethodBase.GetCurrentMethod(), " UserName - " + username + " Password - " + password + " Remember - " + remember + " ReturnUrl - " + returnUrl);
                LogExtension.LogInfo("Login result is " + apiData.StatusText, MethodBase.GetCurrentMethod(), " UserName - " + username + " Password - " + password + " Remember - " + remember + " ReturnUrl - " + returnUrl);

                var isValid = apiData.StatusText;

                switch (isValid.ToLower())
                {
                case "validuser":
                    var userDetail = _userManagement.FindUserByUserName(username);

                    FormsAuthentication.SetAuthCookie(userDetail.UserId.ToString(), remember != null && remember.ToLower().Trim() == "on");

                    GlobalAppSettings.SetTimeZone(userDetail.UserId);

                    HttpContext.Session["displayname"] = userDetail.DisplayName;
                    HttpContext.Session["firstname"]   = userDetail.FirstName;
                    HttpContext.Session["lastname"]    = userDetail.LastName;
                    HttpContext.Session["IsAdmin"]     = GlobalAppSettings.IsAdmin(userDetail.UserId);

                    _userManagement.UpdateLoginTime(userDetail.UserId, DateTime.UtcNow);

                    if (String.IsNullOrWhiteSpace(returnUrl))
                    {
                        return(RedirectToAction("reports", "reports"));
                    }

                    return(Redirect(returnUrl));

                case "invalidpassword":
                    TempData["currentValue"]        = username;
                    TempData["errorUserName"]       = "";
                    TempData["errorPassword"]       = apiData.Message;
                    TempData["errorUserStatus"]     = "";
                    TempData["errorPasswordStatus"] = "inline-block";
                    return(View());

                case "throttleduser":
                    TempData["errorUserName"] = "";
                    TempData["errorPassword"] = "";
                    TempData["User"]          = apiData.Message;
                    return(View());

                case "invalidusername":
                    TempData["currentValue"]        = username;
                    TempData["errorUserName"]       = apiData.Message;
                    TempData["errorPassword"]       = "";
                    TempData["errorUserStatus"]     = "inline-block";
                    TempData["errorPasswordStatus"] = "";
                    return(View());

                case "deactivateduser":
                    TempData["errorUserName"]   = "";
                    TempData["errorPassword"]   = "";
                    TempData["errorUserStatus"] = "inline-block";
                    TempData["User"]            = apiData.Message;
                    return(View());

                default:
                    TempData["errorUserName"]   = "";
                    TempData["errorPassword"]   = "";
                    TempData["errorUserStatus"] = "inline-block";
                    TempData["User"]            = apiData.Message;
                    return(View());
                }
            }
            return(View());
        }
コード例 #3
0
ファイル: ApiHandler.cs プロジェクト: smasithick/Grout
        public string ApiProcessor(string url, Dictionary <string, object> headers, Dictionary <string, object> inputItems)
        {
            string target;
            var    queryString = String.Empty;

            try
            {
                if (inputItems != null)
                {
                    foreach (var inputItem in inputItems)
                    {
                        if (string.IsNullOrEmpty(queryString))
                        {
                            queryString = "?" + inputItem.Key + "=" + inputItem.Value;
                        }
                        else
                        {
                            queryString = queryString + "&" + inputItem.Key + "=" + inputItem.Value;
                        }
                    }
                }

                var requestModeHeader = Convert.ToBase64String(
                    Encoding.UTF8.GetBytes(new TokenCryptography().Encrypt("WebServer",
                                                                           HttpContext.Current.Request.UserHostAddress)));

                if (headers == null)
                {
                    headers = new Dictionary <string, object> {
                        { "RequestMode", requestModeHeader }
                    };
                }
                else if (headers.ContainsKey("RequestMode") == false)
                {
                    headers.Add("RequestMode", requestModeHeader);
                }

                var baseUrl = new UriBuilder(HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port);

                var requestUrl = (baseUrl.ToString().TrimEnd('/') + url + queryString);
                LogExtension.LogInfo("API Request URL - " + requestUrl, MethodBase.GetCurrentMethod());

                var request = (HttpWebRequest)WebRequest.Create(requestUrl);

                foreach (var header in headers)
                {
                    request.Headers.Add(header.Key, header.Value.ToString());
                }
                var response     = (HttpWebResponse)request.GetResponse();
                var streamReader = new StreamReader(response.GetResponseStream(), true);
                try
                {
                    target = streamReader.ReadToEnd();
                }
                finally
                {
                    streamReader.Close();
                    LogExtension.LogInfo("API Request successful", MethodBase.GetCurrentMethod(), " Url - " + url + " QueryString - " + queryString + " RequestUrl - " + requestUrl);
                }
            }
            catch (Exception ex)
            {
                LogExtension.LogInfo("API Request error", MethodBase.GetCurrentMethod());
                LogExtension.LogError("Error in APi Request", ex, MethodBase.GetCurrentMethod(), " Url - " + url + " QueryString - " + queryString);
                try
                {
                    var webException = ex as WebException;
                    var response     = webException.Response as HttpWebResponse;
                    if (response.StatusCode == HttpStatusCode.Unauthorized)
                    {
                        FormsAuthentication.SignOut();
                        target =
                            jserializer.Serialize(new ApiResponse
                        {
                            Data = new ApiData {
                                Message = response.StatusCode.ToString()
                            },
                            ApiStatus = false
                        });
                    }
                    else
                    {
                        target =
                            jserializer.Serialize(new ApiResponse
                        {
                            Data = new ApiData {
                                Message = ex.Message
                            },
                            ApiStatus = false
                        });
                    }
                }
                catch (Exception)
                {
                    target =
                        jserializer.Serialize(new ApiResponse
                    {
                        Data = new ApiData {
                            Message = ex.Message
                        },
                        ApiStatus = false
                    });
                }
            }
            return(target);
        }
コード例 #4
0
        /// <summary>
        /// Add System Admin
        /// </summary>
        /// <param name="userName">User name</param>
        /// <param name="firstName">Full name of user</param>
        /// <param name="lastName">Last name of user</param>
        /// <param name="emailId">Email Id</param>
        /// <param name="password">Password</param>
        public static void AddSystemAdmin(string userName, string firstName, string lastName, string emailId,
                                          string password)
        {
            LogExtension.LogInfo("Creating system admin",
                                 MethodBase.GetCurrentMethod());
            var encrypt         = new Cryptography();
            var umpUser         = new User();
            var userManagement  = new UserManagement(GlobalAppSettings.QueryBuilder, GlobalAppSettings.DataProvider);
            var groupManagement = new GroupManagement(GlobalAppSettings.QueryBuilder, GlobalAppSettings.DataProvider);

            umpUser.Password          = Convert.ToBase64String(encrypt.Encryption(password));
            umpUser.CreatedDate       = DateTime.UtcNow;
            umpUser.ModifiedDate      = DateTime.UtcNow;
            umpUser.IsActive          = true;
            umpUser.IsDeleted         = false;
            umpUser.ResetPasswordCode = "default";
            umpUser.ActivationCode    = "default";
            umpUser.UserName          = userName;
            umpUser.FirstName         = firstName.Trim();
            umpUser.LastName          = lastName.Trim();
            umpUser.DisplayName       = (umpUser.FirstName.Trim() + " " + umpUser.LastName.Trim()).Trim();
            umpUser.Email             = emailId;
            umpUser.IsActivated       = true;
            var activationCode           = String.Empty;
            var activationExpirationDate = new DateTime();

            LogExtension.LogInfo("Adding user in user table", MethodBase.GetCurrentMethod());
            var result = userManagement.AddUser(umpUser, out activationExpirationDate, out activationCode);

            if (result.Status)
            {
                LogExtension.LogInfo("Adding user in user table succesful", MethodBase.GetCurrentMethod());
                LogExtension.LogInfo("Adding user in super admin group table", MethodBase.GetCurrentMethod());
                var userGroup = groupManagement.AddUserInGroup(Convert.ToInt32(result.ReturnValue), 1);
                LogExtension.LogInfo("Is user added in super admin?" + userGroup, MethodBase.GetCurrentMethod());

                //var permissionSet = new PermissionSet();

                //permissionSet.AddPermissionToGroup(new Permission
                //{
                //    PermissionAccess = PermissionAccess.Create,
                //    PermissionEntity = PermissionEntity.AllCategories,
                //    TargetId = 1
                //});

                //permissionSet.AddPermissionToGroup(new Permission
                //{
                //    PermissionAccess = PermissionAccess.Create,
                //    PermissionEntity = PermissionEntity.AllReports,
                //    TargetId = 1
                //});

                //permissionSet.AddPermissionToGroup(new Permission
                //{
                //    PermissionAccess = PermissionAccess.Create,
                //    PermissionEntity = PermissionEntity.AllSchedules,
                //    TargetId = 1
                //});

                //permissionSet.AddPermissionToGroup(new Permission
                //{
                //    PermissionAccess = PermissionAccess.Create,
                //    PermissionEntity = PermissionEntity.AllDataSources,
                //    TargetId = 1
                //});

                //permissionSet.AddPermissionToGroup(new Permission
                //{
                //    PermissionAccess = PermissionAccess.Create,
                //    PermissionEntity = PermissionEntity.AllFiles,
                //    TargetId = 1
                //});
            }
            else
            {
                LogExtension.LogInfo("Error in adding user in user table", MethodBase.GetCurrentMethod());
            }
        }