C# 表单数据/身份验证/或任何其他请求/响应体系结构是否受perm重定向的影响? 我的应用程序正在多台服务器上运行 我希望其中一个服务器能够处理特定的api请求子集,因为它与缓存交互。可以使用我给它的特殊CMS Url与该服务器联系:Config.CMSUrl
我有以下代码:C# 表单数据/身份验证/或任何其他请求/响应体系结构是否受perm重定向的影响? 我的应用程序正在多台服务器上运行 我希望其中一个服务器能够处理特定的api请求子集,因为它与缓存交互。可以使用我给它的特殊CMS Url与该服务器联系:Config.CMSUrl,c#,actionfilterattribute,C#,Actionfilterattribute,我有以下代码: public enum ServerType { CMS } public class RunOnServerAttribute : System.Web.Http.Filters.ActionFilterAttribute { public ServerType Type; public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext filt
public enum ServerType
{
CMS
}
public class RunOnServerAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public ServerType Type;
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext filterContext)
{
switch (Type)
{
case ServerType.CMS:
if (!filterContext.Request.RequestUri.AbsoluteUri.StartsWith(Config.CMSUrl))
{
var response = filterContext.Request.CreateResponse(System.Net.HttpStatusCode.Moved);
response.Headers.Location = new Uri($"{Config.CMSUrl}/{filterContext.Request.RequestUri.PathAndQuery}");
}
break;
}
base.OnActionExecuting(filterContext);
}
}
这应该允许开发人员向API方法添加一个简单的属性,该属性将准确地指示该方法需要运行的位置(因此任何处理与缓存交互的方法都应该通过cms服务器进行引导)
为了维护身份验证、表单数据和我可能拥有的任何其他请求/响应体系结构,使用此方法是否安全?或者我可能在这里冒险吗?
我的另一个选择是确保首先调用url的人正确使用CMS url而不是普通的api url。。。但我的问题是可能的维护和人为错误。请阅读。
当您使用自己的方案或url重定向时,请确保您注意传递的任何查询参数和编码url等。POST参数将正常运行,因为它们是请求对象的一部分