/// <summary> /// Gets a collection of HttpMethods supported by the action. Called when initializing the <see cref="ApiExplorer.ApiDescriptions"/>. /// </summary> /// <param name="route">The route.</param> /// <param name="actionDescriptor">The action descriptor.</param> /// <returns>A collection of HttpMethods supported by the action.</returns> public virtual Collection <HttpMethod> GetHttpMethodsSupportedByAction(IHttpRoute route, HttpActionDescriptor actionDescriptor) { if (route == null) { throw Error.ArgumentNull("route"); } if (actionDescriptor == null) { throw Error.ArgumentNull("actionDescriptor"); } IList <HttpMethod> supportedMethods = new List <HttpMethod>(); IList <HttpMethod> actionHttpMethods = actionDescriptor.SupportedHttpMethods; HttpMethodConstraint httpMethodConstraint = route.Constraints.Values.FirstOrDefault(c => typeof(HttpMethodConstraint).IsAssignableFrom(c.GetType())) as HttpMethodConstraint; if (httpMethodConstraint == null) { supportedMethods = actionHttpMethods; } else { supportedMethods = httpMethodConstraint.AllowedMethods.Intersect(actionHttpMethods).ToList(); } return(new Collection <HttpMethod>(supportedMethods)); }
public IEnumerable <UriResolutionResult> Get() { string routeTemplate = "movies/{genre}/{title}/{id}"; IHttpRoute route = new HttpRoute(routeTemplate); IHttpRouteConstraint contraint = new HttpMethodConstraint(HttpMethod.Post); route.Constraints.Add("httpMethod", contraint); string requestUri = "http://www.artech.com/api/movies/romance/titanic/001"; HttpRequestMessage request1 = new HttpRequestMessage(HttpMethod.Get, requestUri); HttpRequestMessage request2 = new HttpRequestMessage(HttpMethod.Post, requestUri); string root1 = "/"; string root2 = "/api/"; IHttpRouteData routeData1 = route.GetRouteData(root1, request1); IHttpRouteData routeData2 = route.GetRouteData(root1, request2); IHttpRouteData routeData3 = route.GetRouteData(root2, request1); IHttpRouteData routeData4 = route.GetRouteData(root2, request2); yield return(new UriResolutionResult(root1, "GET", routeData1 != null)); yield return(new UriResolutionResult(root1, "POST", routeData2 != null)); yield return(new UriResolutionResult(root2, "GET", routeData3 != null)); yield return(new UriResolutionResult(root2, "POST", routeData4 != null)); }
void RegisterRoutes(RouteCollection routes) { string[] allowedMethods = { "GET", "POST" }; HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods); RouteValueDictionary vd = new RouteValueDictionary { { "httpMethod", methodConstraints } }; string[] allowedGET = { "GET" }; HttpMethodConstraint methodConstraints3 = new HttpMethodConstraint(allowedGET); RouteValueDictionary vdGET = new RouteValueDictionary { { "httpMethod", methodConstraints3 } }; /* Métodos GET * =============================*/ /* CAS - Central Authentication Service * -----------------------------*/ routes.MapPageRoute("cas-default", "cas", "~/_cas/default.aspx", true, null, vd); //Aceita GET e POST routes.MapPageRoute("cas-login", "cas/login", "~/_cas/login.aspx", true, null, vd); //Aceita GET e POST routes.MapPageRoute("cas-logout", "cas/logout", "~/_cas/logout.aspx", true, null, vdGET); routes.MapPageRoute("cas-validate", "cas/validate", "~/_cas/validate.aspx", true, null, vdGET); routes.MapPageRoute("cas-serviceValidate", "cas/serviceValidate", "~/_cas/service_validate.aspx", true, null, vdGET); routes.MapPageRoute("cas-proxyValidate", "cas/proxyValidate", "~/_cas/proxy_validate.aspx", true, null, vdGET); routes.MapPageRoute("cas-proxy", "cas/proxy", "~/_cas/proxy.aspx", true, null, vdGET); routes.MapPageRoute("cas-recover", "cas/recover", "~/_cas/recover.aspx", true, null, vd); routes.MapPageRoute("cas-recover1", "cas/recover/step1", "~/_cas/recover_st1.aspx", true, null, vd); routes.MapPageRoute("cas-recover2", "cas/recover/step2", "~/_cas/recover_st2.aspx", true, null, vd); routes.MapPageRoute("cas-recover3", "cas/recover/step3", "~/_cas/recover_st3.aspx", true, null, vd); routes.MapPageRoute("cas-recover4", "cas/passwordchanged", "~/_cas/passwordchanged.aspx", true, null, vd); routes.MapPageRoute("cas-passwordstrength", "cas/passwordstrength", "~/_cas/passwordstrength.aspx", true, null, vd); routes.MapPageRoute("cas-changepassword", "cas/changepassword", "~/_cas/changepassword.aspx", true, null, vd); }
// GET: GetRouteData解决针对入栈请求的校验 public IEnumerable <UrlResolutionResult> Get() { string routeTemplate = "movies/{genre}/{title}/{id}"; IHttpRoute route = new HttpRoute(routeTemplate); var constraint = new HttpMethodConstraint(HttpMethod.Post); route.Constraints.Add("HttpMethod", constraint); string requestUri = "http://www.artech.com/api/movies/romance/titanic/001"; //创建被检验的请求,具有相同的请求地址 //采用Http方法不相同 var request1 = new HttpRequestMessage(HttpMethod.Get, requestUri); var request2 = new HttpRequestMessage(HttpMethod.Post, requestUri); //不同虚拟根路径对HttpRoute的影响 string root1 = "/"; //不可达 string root2 = "/api/"; //可达 IHttpRouteData routeData1 = route.GetRouteData(root1, request1); IHttpRouteData routeData2 = route.GetRouteData(root1, request1); IHttpRouteData routeData3 = route.GetRouteData(root2, request2); IHttpRouteData routeData4 = route.GetRouteData(root2, request2); yield return(new UrlResolutionResult(root1, "Get", routeData1 != null)); yield return(new UrlResolutionResult(root1, "Post", routeData2 != null)); yield return(new UrlResolutionResult(root2, "Get", routeData3 != null)); yield return(new UrlResolutionResult(root2, "Post", routeData4 != null)); }
/// <summary> /// Gets a collection of HttpMethods supported by the action. Called when initializing the <see cref="ApiExplorer.ApiDescriptions"/>. /// </summary> /// <param name="route">The route.</param> /// <param name="actionDescriptor">The action descriptor.</param> /// <returns>A collection of HttpMethods supported by the action.</returns> public virtual IList <HttpMethod> GetHttpMethodsSupportedByAction(IHttpRoute route, HttpActionDescriptor actionDescriptor) { if (route == null) { throw Error.ArgumentNull("route"); } if (actionDescriptor == null) { throw Error.ArgumentNull("actionDescriptor"); } bool isActionVariableSpecified = _actionVariableRegex.IsMatch(route.RouteTemplate) || route.Defaults.ContainsKey(ActionVariableName); IList <HttpMethod> supportedMethods = new List <HttpMethod>(); IList <HttpMethod> actionHttpMethods = actionDescriptor.SupportedHttpMethods; HttpMethodConstraint httpMethodConstraint = route.Constraints.Values.FirstOrDefault(c => typeof(HttpMethodConstraint).IsAssignableFrom(c.GetType())) as HttpMethodConstraint; if (httpMethodConstraint == null) { supportedMethods = actionHttpMethods; } else { supportedMethods = httpMethodConstraint.AllowedMethods.Intersect(actionHttpMethods).ToList(); } return(supportedMethods); }
public void add_constraint_to_route_with_model() { var url = new RouteDefinition <SampleViewModel>("my/sample"); var constraintToAdd = new HttpMethodConstraint("POST"); url.AddRouteConstraint("httpMethod", constraintToAdd); Route route = url.ToRoute(); route.Constraints["httpMethod"].ShouldEqual(constraintToAdd); }
private static string[] GetHttpOperations(IHttpRoute httpRoute) { HttpMethodConstraint httpMethodConstraint = null; if (httpRoute.Constraints.TryGetValue(ScriptConstants.HttpMethodConstraintName, out httpMethodConstraint) && httpMethodConstraint.AllowedMethods != null) { return(httpMethodConstraint.AllowedMethods.Select(p => p.Method.ToLowerInvariant()).ToArray <string>()); } return(ScriptConstants.HttpMethods.ToArray()); }
private static ActionConstraintContext CreateActionConstraintContext(HttpMethodConstraint constraint) { var context = new ActionConstraintContext(); var actionSelectorCandidate = new ActionSelectorCandidate(new ActionDescriptor(), new List<IActionConstraint> { constraint }); context.Candidates = new List<ActionSelectorCandidate> { actionSelectorCandidate }; context.CurrentCandidate = context.Candidates[0]; return context; }
public static void RegisterReviewAvatarsRoute(this RouteCollection routes) { var route = new Route("review-avatars/get", new AvatarRouteRouteHandler()); string[] allowedMethods = { "GET" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routes.Add(route); }
public void add_constraint_to_route_with_model() { var parent = new RouteDefinition("my/sample"); parent.Input = new RouteInput <SampleViewModel>(parent); var constraintToAdd = new HttpMethodConstraint("POST"); parent.AddRouteConstraint("httpMethod", constraintToAdd); Route route = parent.ToRoute(); route.Constraints["httpMethod"].ShouldEqual(constraintToAdd); }
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // configure HttpHandler for serving static images HttpMethodConstraint GetFileMethodConstraints = new HttpMethodConstraint(new string[] { "GET" }); Route GetFileRoute = new Route( url: "Files/{id}/{filename}", routeHandler: new DobImageRouteHandler(), defaults: null, constraints: new RouteValueDictionary { { "httpMethod", GetFileMethodConstraints } } ); routes.Add("GetFileRoute", GetFileRoute); //routes.MapRoute( // name: "Get File", // url: "Files/{id}/{filename}", // defaults: new { controller = "Files", action = "Find" }, // constraints: new { httpMethod = new HttpMethodConstraint("GET") } //); routes.MapRoute( name: "Delete File", url: "Files/{id}/{filename}", defaults: new { controller = "Files", action = "Delete" }, constraints: new { httpMethod = new HttpMethodConstraint("DELETE") } ); routes.MapRoute( name: "Get Json File List", url: "Files", defaults: new { controller = "Files", action = "List" }, constraints: new { httpMethod = new HttpMethodConstraint("GET") } ); routes.MapRoute( name: "Post Files", url: "Files", defaults: new { controller = "Files", action = "Uploads" }, constraints: new { httpMethod = new HttpMethodConstraint("POST") } ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
/// <summary> /// Registers the HTTP routes. /// </summary> public static void RegisterRoutes(HttpRouteCollection httpRouteCollection) { // Build the HTTP method contraint. HttpMethodConstraint httpMethodConstraint = new HttpMethodConstraint(HttpMethod.Get, HttpMethod.Post); // Map the HTTP route. httpRouteCollection.MapHttpRoute( name: "api/scheduling/sessions", routeTemplate: "api/scheduling/sessions", defaults: new { controller = "Sessions" }, constraints: new { httpMethods = httpMethodConstraint }); }
public void HttpMethodConstraint_Accept_CaseInsensitive(IEnumerable<string> httpMethods, string expectedMethod) { // Arrange var constraint = new HttpMethodConstraint(httpMethods); var context = CreateActionConstraintContext(constraint); context.RouteContext = CreateRouteContext(expectedMethod); // Act var result = constraint.Accept(context); // Assert Assert.True(result, "Request should have been accepted."); }
public static void RegisterImageProxyRoute(this RouteCollection routes) { var routeData = new RouteValueDictionary { { "Controller", nameof(ReviewAvatarsHandler) } }; var route = new Route(ImageProxyRoute, routeData, new ImageProxyRouteHandler()); string[] allowedMethods = { "GET" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routes.Add(route); }
public void GenerateSwaggerDocument_AddsParameterInfoUsingKnownAndUnknownHttpRouteConstraint() { // Arrange string apiEndpoint = "/api/{id}/{category}/HttpTriggerCSharp1"; string routeTemplate = apiEndpoint.Substring(1); HttpMethod[] allowedMethods = { HttpMethod.Get, HttpMethod.Post }; var httpMethodConstraint = new HttpMethodConstraint(allowedMethods); HttpRouteValueDictionary constraints = new HttpRouteValueDictionary(); constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint); constraints.Add("id", new IntRouteConstraint()); var httpRoute = new HttpRoute(routeTemplate, null, constraints); Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>() { { httpRoute, new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null) } }; var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig); // Act var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions); // Assert var swaggerdoc = generatedDocument.ToObject <SwaggerDocument>(); Assert.True(swaggerdoc.ApiEndpoints.ContainsKey(apiEndpoint)); Assert.Equal(swaggerdoc.ApiEndpoints.Keys.Count, 1); var httpOperations = swaggerdoc.ApiEndpoints[apiEndpoint]; Assert.Equal(httpOperations.Count, 2); foreach (var httpMethod in httpMethodConstraint.AllowedMethods) { Assert.True(httpOperations.ContainsKey(httpMethod.Method.ToString().ToLowerInvariant())); Assert.NotNull(httpOperations[httpMethod.Method.ToString().ToLowerInvariant()]); var inputParams = httpOperations[httpMethod.Method.ToString().ToLowerInvariant()].InputParameters.ToList(); Assert.Equal(inputParams.Count, 2); Assert.Equal(inputParams[0].DataType, SwaggerDataType.Integer.ToString().ToLowerInvariant()); Assert.Equal(inputParams[1].DataType, SwaggerDataType.String.ToString().ToLowerInvariant()); } }
public void UrlGeneration() { var c = new HttpMethodConstraint(new string[] { "GET" }) as IRouteConstraint; var req = new HttpContextStub("", "", "HEAD"); var values = new RouteValueDictionary() { { "httpMethod", "GET" } }; Assert.IsTrue(c.Match(req, new Route(null, null), "httpMethod", values, RouteDirection.UrlGeneration), "#1"); values = new RouteValueDictionary() { { "httpMethod", "POST" } }; Assert.IsFalse(c.Match(req, new Route(null, null), "httpMethod", values, RouteDirection.UrlGeneration), "#2"); }
private void RegisterAddPinPost(RouteCollection routeCollection, ExternalReviewOptions externalReviewOptions) { var routeValues = new RouteValueDictionary(); routeValues.Add("controller", "PageEdit"); routeValues.Add("action", "AddPin"); var route = new Route(externalReviewOptions.ReviewsUrl + "/AddPin", routeValues, new MvcRouteHandler()); string[] allowedMethods = { "POST" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routeCollection.Add(route); }
public void GenerateSwaggerDocument_CreatesSwaggerDocument_WithSelectHttpMethods() { // Arrange string apiEndpoint = "/api/HttpTriggerCSharp1"; string routeTemplate = apiEndpoint.Substring(1); HttpMethod[] allowedMethods = { HttpMethod.Get, HttpMethod.Post }; var httpMethodConstraint = new HttpMethodConstraint(allowedMethods); HttpRouteValueDictionary constraints = new HttpRouteValueDictionary(); constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint); var httpRoute = new HttpRoute(routeTemplate, null, constraints); Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>() { { httpRoute, new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null) } }; var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig); // Act var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions); // Assert var swaggerdoc = generatedDocument.ToObject <SwaggerDocument>(); Assert.True(swaggerdoc.ApiEndpoints.ContainsKey(apiEndpoint)); Assert.Equal(swaggerdoc.ApiEndpoints.Keys.Count, 1); var httpOperations = swaggerdoc.ApiEndpoints[apiEndpoint]; Assert.Equal(httpOperations.Count, 2); foreach (var httpMethod in httpMethodConstraint.AllowedMethods) { Assert.True(httpOperations.ContainsKey(httpMethod.Method.ToString().ToLowerInvariant())); Assert.NotNull(httpOperations[httpMethod.Method.ToString().ToLowerInvariant()]); } }
private static void RegisterEditPageGet(RouteRegistrationEventArgs e, ExternalReviewOptions externalReviewOptions) { var routeValues = new RouteValueDictionary(); routeValues.Add("controller", "PageEdit"); routeValues.Add("action", "Index"); routeValues.Add("token", " UrlParameter.Optional"); var route = new Route(externalReviewOptions.ReviewsUrl + "/{token}", routeValues, new MvcRouteHandler()); string[] allowedMethods = { "GET" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; e.Routes.Add(route); }
static void ApplyConstraints(IEnumerable <string> args, RouteBuilderInfo info, IDictionary <string, object> constraints) { var httpMethod = info.ActionCall.Method.Name.StartsWith("post", StringComparison.OrdinalIgnoreCase) ? "POST" : "GET"; constraints["httpMethod"] = new HttpMethodConstraint(httpMethod); foreach (var arg in args) { var param = info.ActionCall.GetActionArgument(arg); if (param != null) { var constraint = info.GetConstraint(param.ParameterType); if (constraint != null) { constraints[arg] = constraint; } } } }
private void Global_RoutesRegistrating(object sender, RouteRegistrationEventArgs e) { var routeValues = new RouteValueDictionary(); routeValues.Add("controller", "FolderDownload"); routeValues.Add("action", "Index"); routeValues.Add("contentFolderIds", UrlParameter.Optional); const string baseUrl = "cms-content-folder-download"; var route = new Route(baseUrl + "/{contentFolderIds}", routeValues, new MvcRouteHandler()); string[] allowedMethods = { "GET" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; e.Routes.Add(route); }
private void RegisterEditableActionPost(RouteCollection routeCollection, ExternalReviewOptions externalReviewOptions, string method) { if (!externalReviewOptions.EditableLinksEnabled) { return; } var routeValues = new RouteValueDictionary(); routeValues.Add("controller", "PageEdit"); routeValues.Add("action", method); var route = new Route($"{externalReviewOptions.ReviewsUrl}/{method}", routeValues, new MvcRouteHandler()); string[] allowedMethods = { "POST" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routeCollection.Add(route); }
private void RegisterSubmitLoginPage(RouteCollection routeCollection, ExternalReviewOptions options) { if (!options.PinCodeSecurity.Enabled) { return; } var routeValues = new RouteValueDictionary(); routeValues.Add("controller", options.PinCodeSecurity.ExternalReviewLoginUrl); routeValues.Add("action", "Submit"); var route = new Route("ExternalReviewLogin/Submit", routeValues, new MvcRouteHandler()); string[] allowedMethods = { "POST" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); route.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routeCollection.Add(route); }
private static void registerGroupRoutes(RouteCollection routes_) { routes_.MapRoute( //"GroupsAndItems", "Groups", "Groups", new { controller = "Group", action = "List" } ); routes_.MapRoute( "ToGroupCreateCard", "Groups/Create/IdParent={idParent_}", new { controller = "Group", action = "CreateGroupCard" } ); routes_.MapRoute("CreateNewGroup", "Groups/Create/Name={name_}/IdParent={idParent_}", new { controller = "Group", action = "CreateNewGroup" } ); routes_.MapRoute("CreateNewGroup2", "Groups/Create/Name={name_}", new { controller = "Group", action = "CreateNewGroup" } ); routes_.MapRoute("EditGroup1", "Groups/Edit/{id_}/Name={name_}/IdParent={idParent_}", new { controller = "Group", action = "EditGroupCard" } ); routes_.MapRoute("EditGroup2", "Groups/Edit/{id_}/Name={name_}/IdParent=null", new { controller = "Group", action = "EditGroupCard" } ); routes_.MapRoute("EditGroup3", "Groups/Edit/{id_}/Name={name_}", new { controller = "Group", action = "ChangeGroupName" } ); string[] allowedMethods = { "GET", "DELETE" }; var methodConstraints = new HttpMethodConstraint(allowedMethods); var cMethodGet = new HttpMethodConstraint("GET"); var cMethodDelete = new HttpMethodConstraint("POST"); routes_.MapRoute("DeleteGroupById", "Groups/Delete/{gId_}", new { controller = "Group", action = "DeleteGroup", httpMethod = cMethodGet //httpMethod = methodConstraints }); routes_.MapRoute("DeleteCurrentGroup", "Groups/Delete", new { controller = "Group", action = "DeleteGroup", httpMethod = cMethodDelete } ); routes_.MapRoute( name: "GroupEdit", url: "Groups/Edit/{gId_}", defaults: new { controller = "Group", action = "EditGroup" } ); }
public void GenerateSwaggerDocument_CreatesBasicSwaggerDocument() { string apiEndpoint = "/api/HttpTriggerCSharp1"; string routeTemplate = apiEndpoint.Substring(1); HttpMethod[] allowedMethods = { HttpMethod.Get }; var httpMethodConstraint = new HttpMethodConstraint(allowedMethods); HttpRouteValueDictionary constraints = new HttpRouteValueDictionary(); constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint); var httpRoute = new HttpRoute(routeTemplate, null, constraints); Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>() { { httpRoute, new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null) } }; // Act var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig); var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions); string hostName = Environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteHostName); if (hostName == null) { generatedDocument["info"]["title"] = string.Empty; generatedDocument["host"] = string.Empty; } string expectedSwagger = @" { 'swagger': '2.0', 'info': { 'title': 'localhost', 'version': '1.0.0' }, 'host': 'localhost', 'basePath': '/', 'schemes': [ 'https', 'http' ], 'paths': { '/api/HttpTriggerCSharp1': { 'get': { 'operationId': '/api/HttpTriggerCSharp1/get', 'produces': [], 'consumes': [], 'parameters': [], 'description': 'Replace with Operation Object #http://swagger.io/specification/#operationObject', 'responses': { '200': { 'description': 'Success operation' } }, 'security': [ { 'apikeyQuery': [] } ] } } }, 'definitions': {}, 'securityDefinitions': { 'apikeyQuery': { 'type': 'apiKey', 'name': 'code', 'in': 'query' } } }".Replace("localhost", hostName); expectedSwagger = JObject.Parse(expectedSwagger).ToString(Formatting.None); Assert.Equal(expectedSwagger, generatedDocument.ToString(Formatting.None)); }
void RegisterRoutes(RouteCollection routes) { string[] allowedMethods = { "GET", "POST" }; HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods); RouteValueDictionary vd = new RouteValueDictionary { { "httpMethod", methodConstraints } }; string[] allowedPOST = { "POST" }; HttpMethodConstraint methodConstraints2 = new HttpMethodConstraint(allowedPOST); RouteValueDictionary vdPOST = new RouteValueDictionary { { "httpMethod", methodConstraints2 } }; string[] allowedGET = { "GET" }; HttpMethodConstraint methodConstraints3 = new HttpMethodConstraint(allowedGET); RouteValueDictionary vdGET = new RouteValueDictionary { { "httpMethod", methodConstraints3 } }; /* Métodos GET * =============================*/ /* CAS - Central Authentication Service * -----------------------------*/ /* * routes.MapPageRoute("cas-login", "cas/login", "~/_cas/login.aspx", true, null, vd); //Aceita GET e POST * routes.MapPageRoute("cas-logout", "cas/logout", "~/_cas/logout.aspx", true, null, vdGET); * routes.MapPageRoute("cas-validate", "cas/validate", "~/_cas/validate.aspx", true, null, vdGET); * routes.MapPageRoute("cas-serviceValidate", "cas/serviceValidate", "~/_cas/service_validate.aspx", true, null, vdGET); * routes.MapPageRoute("cas-proxyValidate", "cas/proxyValidate", "~/_cas/proxy_validate.aspx", true, null, vdGET); * routes.MapPageRoute("cas-proxy", "cas/proxy", "~/_cas/proxy.aspx", true, null, vdGET); * routes.MapPageRoute("cas-recover", "cas/recover", "~/_cas/recover.aspx", true, null, vd); * routes.MapPageRoute("cas-recover1", "cas/recover/step1", "~/_cas/recover_st1.aspx", true, null, vd); * routes.MapPageRoute("cas-recover2", "cas/recover/step2", "~/_cas/recover_st2.aspx", true, null, vd); * routes.MapPageRoute("cas-recover3", "cas/recover/step3", "~/_cas/recover_st3.aspx", true, null, vd); * routes.MapPageRoute("cas-recover4", "cas/recover/step4", "~/_cas/recover_st4.aspx", true, null, vd); * routes.MapPageRoute("cas-passwordstrength", "cas/passwordstrength", "~/_cas/passwordstrength.aspx", true, null, vd);*/ /* Console Ping * -----------------------------*/ routes.MapPageRoute("Ping", "ping/", "~/ping.aspx", true, null, vdGET); /* Proxy Sync protocol * -----------------------------*/ routes.MapPageRoute("Sync", "proxy/sync/", "~/proxy/sync.aspx", true, null, vdGET); /* Métodos de leitura de e-mail * -----------------------------*/ routes.MapPageRoute("Mail", "m/", "~/_mail/mail.aspx", true, null, vdGET); routes.MapPageRoute("Mail1", "m/{type}/", "~/_mail/mail.aspx", true, new RouteValueDictionary { { "id", "" }, { "type", "" } }, vd); routes.MapPageRoute("Mail2", "m/{type}/{id}/", "~/_mail/mail.aspx", true, new RouteValueDictionary { { "id", "" }, { "type", "" } }, vd); /* ChartData * -----------------------------*/ routes.MapPageRoute("Admin-chartdata-id", "admin/chartdata/{module}/{type}/{id}/", "~/_admin/chartdata.aspx", true, new RouteValueDictionary { { "module", "" }, { "type", "" }, { "id", "" } }, vd); routes.MapPageRoute("Admin-chartdata", "admin/chartdata/{module}/{type}/", "~/_admin/chartdata.aspx", true, new RouteValueDictionary { { "module", "" }, { "type", "" } }, vd); /* Autoservice * -----------------------------*/ routes.MapPageRoute("AutoService", "autoservice/", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary { { "action", "" }, { "data", "" } }, vdGET); /* Admin Dashboard * -----------------------------*/ routes.MapPageRoute("Admin-base", "admin/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "area", "dashboard" } }, vdGET); /* Admin Web Shell * -----------------------------*/ routes.MapPageRoute("Admin-webshell", "admin/ws/", "~/_admin/_ws/ws.aspx", true, new RouteValueDictionary { { "", "" } }, vd); /* Admin Modules * -----------------------------*/ routes.MapPageRoute("Admin-module-all", "admin/{module}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" } }, vdGET); routes.MapPageRoute("Admin-module-new", "admin/{module}/new/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" }, { "filter", "new" } }, vdGET); routes.MapPageRoute("Admin-module-new2", "admin/{module}/new/{filter}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" }, { "filter", "new" } }, vdGET); routes.MapPageRoute("Admin-module-new3", "admin/{module}/new/{filter}/{id}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" }, { "filter", "new" } }, vdGET); routes.MapPageRoute("Admin-module-id", "admin/{module}/{id}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" } }, vdGET); routes.MapPageRoute("Admin-module-id-direct", "admin/{module}/{id}/direct/{area}/", "~/_admin/module_direct.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" } }, vdGET); routes.MapPageRoute("Admin-module-id-direct-f", "admin/{module}/{id}/direct/{area}/{filter}/", "~/_admin/module_direct.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" } }, vdGET); routes.MapPageRoute("Admin-module-id-f", "admin/{module}/{id}/{filter}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" } }, vdGET); //Adicionado novo para subfiltro routes.MapPageRoute("Admin-module-id-f2", "admin/{module}/{id}/{filter}/{subfilter}/", "~/_admin/template.aspx", true, new RouteValueDictionary { { "module", "" }, { "userid", "" }, { "subfilter", "" } }, vdGET); /* Métodos POST * =============================*/ /* Autoservice * -----------------------------*/ //Módulos novos //routes.MapPageRoute("Autoservice-module", "autoservice/{module}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-search", "autoservice/{module}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "area", "search" }, { "query", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-a-new", "autoservice/{module}/new/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-a-new2", "autoservice/{module}/new/{filter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-a-new3", "autoservice/{module}/new/{filter}/{id}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); routes.MapPageRoute("Autoservice-module-action", "autoservice/{module}/action/{action}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-content", "autoservice/{module}/{id}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-search", "autoservice/{module}/{id}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST); routes.MapPageRoute("Autoservice-module-id-action", "autoservice/{module}/{id}/action/{action}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST); routes.MapPageRoute("Autoservice-module-id-action-f", "autoservice/{module}/{id}/action/{action}/{filter}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-content-f2", "autoservice/{module}/{id}/{filter}/{subfilter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "subfilter", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-search-f2", "autoservice/{module}/{id}/{filter}/{subfilter}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }, { "subfilter", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-content-f", "autoservice/{module}/{id}/{filter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); //routes.MapPageRoute("Autoservice-module-id-search-f", "autoservice/{module}/{id}/{filter}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST); //Modulos antigos, migrar para o novo routes.MapPageRoute("AutoService1", "autoservice/content/", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary { { "action", "" }, { "data", "" } }, vd); routes.MapPageRoute("AutoService2", "autoservice/content/{area}", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary { { "action", "" }, { "data", "" } }, vd); routes.MapPageRoute("AutoServiceUser", "autoservice/user/{action}/{step}/", "~/_autoservice/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "step", "" } }, vd); routes.MapPageRoute("AutoServiceUser2", "autoservice/user/{action}/content/{area}", "~/_autoservice/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "step", "" } }, vd); routes.MapPageRoute("AutoServiceAccessRequest-new", "autoservice/access_request/new/", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary { { "action", "new" }, { "id", "" } }, vd); routes.MapPageRoute("AutoServiceAccessRequest2", "autoservice/access_request/{id}/{action}/", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary { { "action", "" }, { "id", "" } }, vd); routes.MapPageRoute("AutoServiceAccessRequest3", "autoservice/access_request/{action}/content/{area}", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary { { "action", "" }, { "step", "" } }, vd); /* Admin Dashboard * -----------------------------*/ routes.MapPageRoute("Admin-dasboard", "admin/content/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "dashboard" }, { "area", "" } }, vdPOST); routes.MapPageRoute("Admin-dasboard2", "admin/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "dashboard" }, { "area", "" } }, vdPOST); routes.MapPageRoute("Admin-dasboard-search", "admin/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "users" }, { "area", "search" }, { "query", "" } }, vdPOST); /* Admin Modules * -----------------------------*/ routes.MapPageRoute("Admin-module", "admin/{module}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); routes.MapPageRoute("Admin-module-search", "admin/{module}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "area", "search" }, { "query", "" } }, vdPOST); routes.MapPageRoute("Admin-module-a-new", "admin/{module}/new/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); routes.MapPageRoute("Admin-module-a-new2", "admin/{module}/new/{filter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); routes.MapPageRoute("Admin-module-a-new3", "admin/{module}/new/{filter}/{id}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST); routes.MapPageRoute("Admin-module-action", "admin/{module}/action/{action}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-content", "admin/{module}/{id}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-search", "admin/{module}/{id}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-action", "admin/{module}/{id}/action/{action}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-action-f", "admin/{module}/{id}/action/{action}/{filter}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-content-f2", "admin/{module}/{id}/{filter}/{subfilter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "subfilter", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-search-f2", "admin/{module}/{id}/{filter}/{subfilter}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }, { "subfilter", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-content-f", "admin/{module}/{id}/{filter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST); routes.MapPageRoute("Admin-module-id-search-f", "admin/{module}/{id}/{filter}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST); //routes.MapPageRoute("Admin-module-action-f", "admin/{module}/action/{action}/{filter}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST); //routes.MapPageRoute("Admin-module-id-action-c", "admin/{module}/{id}/action/{action}/content/{area}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST); //routes.MapPageRoute("Admin-module-id-action-s", "admin/{module}/{id}/action/{action}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST); /* Old, Migrar * =============================*/ routes.MapPageRoute("AutoServiceApi2", "consoleapi/{do}/{content}", "~/consoleapi/api.aspx", true, new RouteValueDictionary { { "do", "" }, { "content", "" } }, vd); //Auto serviço //Passos de login routes.MapPageRoute("Login", "login/", "~/_login/login.aspx", true, null, vd); routes.MapPageRoute("Logout", "logout/", "~/_login/logout.aspx", true, null, vd); routes.MapPageRoute("Login2", "login2/", "~/_login2/login.aspx", true, null, vd); routes.MapPageRoute("Login2-changepwd", "login2/changepassword/", "~/_login2/ChangePassword.aspx", true, null, vd); routes.MapPageRoute("Login2-recover", "login2/recover", "~/_login2/recover.aspx", true, null, vd); routes.MapPageRoute("Login2-recover1", "login2/recover/step1", "~/_login2/recover_st1.aspx", true, null, vd); routes.MapPageRoute("Login2-recover2", "login2/recover/step2", "~/_login2/recover_st2.aspx", true, null, vd); routes.MapPageRoute("Login2-recover3", "login2/recover/step3", "~/_login2/recover_st3.aspx", true, null, vd); routes.MapPageRoute("Login2-recover4", "login2/passwordchanged", "~/_login2/PasswordChanged.aspx", true, null, vd); //routes.MapPageRoute("ChangePwd", "login/changepassword/", "~/_login/changepwd.aspx", true, null, vd); //routes.MapPageRoute("LoginRecover", "recover/", "~/_login/recover.aspx", true, new RouteValueDictionary { { "do", "" } }, vd); //routes.MapPageRoute("Login-cont", "login/{action}/", "~/_autoservice/empty.aspx", true, null, vd); //routes.MapPageRoute("Login-cont2", "login/{action}/{data}", "~/_autoservice/empty.aspx", true, null, vd); //routes.MapPageRoute("Recover", "recover/{action}/", "~/_autoservice/empty.aspx", true, null, vd); //routes.MapPageRoute("Recover2", "recover/{action}/{data}", "~/_autoservice/empty.aspx", true, null, vd); //Admin /* * routes.MapPageRoute("AdminUsers", "admin/users/{action}/{data}/{data2}/{data3}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd); * * routes.MapPageRoute("adminSearch2", "admin/user/{userid}/search/{data}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "search" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd); * routes.MapPageRoute("adminSearch3", "admin/user/{userid}/{data2}/search/{data}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "search" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd); * * * routes.MapPageRoute("AdminUser", "admin/user/{userid}/{action}/", "~/_admin/users/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "userid", "" }, { "data2", "" }, { "data3", "" } }, vd); * routes.MapPageRoute("AdminUser2", "admin/user/{userid}/{data2}/{action}/", "~/_admin/users/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "userid", "" }, { "data2", "" } }, vd); */ //Admin User //Admin mobile (old) /* * routes.MapPageRoute("adminMobile", "admin/mobile/", "~/_admin/_mobile/mobile.aspx", true, null, vd); * routes.MapPageRoute("adminMobileList", "admin/mobile/list/", "~/_admin/_mobile/list.aspx", true, null, vd); * routes.MapPageRoute("adminMobileSearch", "admin/mobile/search/{query}/{ts}/", "~/_admin/_mobile/search.aspx", true, new RouteValueDictionary { { "query", "" } }, vd); * routes.MapPageRoute("adminMobileUser", "admin/mobile/user/{userid}/", "~/_admin/_mobile/user.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd); * routes.MapPageRoute("adminMobileUserLogs", "admin/mobile/user/{userid}/logs/", "~/_admin/_mobile/userlogs.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd); * routes.MapPageRoute("adminMobileUserResetPwd", "admin/mobile/user/{userid}/resetpwd/", "~/_admin/_mobile/userresetpwd.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd); * routes.MapPageRoute("adminMobileUserUnlock", "admin/mobile/user/{userid}/unlock/", "~/_admin/_mobile/userlock.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "unlock" } }, vd); * routes.MapPageRoute("adminMobileUserlock", "admin/mobile/user/{userid}/lock/", "~/_admin/_mobile/userlock.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "lock" } }, vd); * routes.MapPageRoute("adminMobileUserdeploy", "admin/mobile/user/{userid}/deploy/", "~/_admin/_mobile/userdeploy.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "lock" } }, vd); */ //routes.MapPageRoute("AutoServiceLoginRecover", "autoservice/login/recover/", "~/autoservice/recover.aspx", true, new RouteValueDictionary { { "do", "" } }, vd); }