public static void Execute(HttpServerUtility server, HttpResponse response) { Exception exc = server.GetLastError(); if (exc.GetType() == typeof(HttpException)) { if (exc.Message.Contains("NoCatch") || exc.Message.Contains("maxUrlLength")) { return; } server.Transfer("HttpErrorPage.aspx"); } else if (exc.GetType() == typeof(DinazorAuthorizationException)) { RedirectDinazorResult.RedirectWithData(new DinazorResult() { Status = ResultStatus.Unauthorized, Message = exc.Message }); } Log.Error(exc); server.ClearError(); }
public static void SessionExecute() { string authorizationUrl = ""; var configurationManager = IocManager.Instance.Resolve <IConfigurationManager>(); var authorizationUrlResult = configurationManager.GetValue("AuthorizationUrl"); if (authorizationUrlResult != null && authorizationUrlResult.Count > 0) { authorizationUrl = authorizationUrlResult[0]; if (!string.IsNullOrEmpty(authorizationUrl)) { authorizationUrl = authorizationUrl.ToLower(); } } else { Log.Error("No Authorization Url Found In DB"); } var request = HttpContext.Current.Request; // authorization url control var url = request.Path.ToLower(new CultureInfo("en-US", false)); url = url[url.Length - 1] == '/' ? url.Remove(url.Length - 1) : url; if (url.EndsWith(authorizationUrl)) { return; } //Control thr URL if it needs Token or not var urlNoNeedTokenList = configurationManager.GetValue("UrlNoNeedToken"); if (urlNoNeedTokenList != null && urlNoNeedTokenList.Count > 0) { foreach (var item in urlNoNeedTokenList) { var reqUrl = item.Split(':')[0].ToLower(); var verb = item.Split(':')[1]; if (url == reqUrl && request.HttpMethod.ToLower() == verb.ToLower()) { return; } } } var token = request.QueryString["token"]; if (token == null) { RedirectDinazorResult.RedirectWithData(new DinazorResult() { Status = ResultStatus.Unauthorized, Message = "Token information is missing" }); return; } DinazorPrincipal.AuthenticateUser(token); var dinazorPrincipal = (DinazorPrincipal)HttpContext.Current.User; if (dinazorPrincipal == null || !dinazorPrincipal.Identity.IsAuthenticated) { RedirectDinazorResult.RedirectWithData(new DinazorResult() { Status = ResultStatus.SessionNotValid, Message = $"Token information is wrong. token is {token}" }); } }