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参数将正常运行,因为它们是请求对象的一部分