影响防伪令牌验证的 Web 配置重定向规则失败

Web config redirect rule affecting Antiforgery token validation to fail

提问人:vamsi penta 提问时间:3/17/2023 更新时间:3/17/2023 访问量:25

问:

我们最近开始致力于在我们的网站上实施防伪令牌验证。但是由于 Web 配置上的重定向规则,我们无法访问具有“ValidateAntiForgeryToken”属性的端点。

Web 配置中使用的重定向规则:

<rule name="Enforce Lower Case URLs" stopProcessing="true">
    <match url="(.*)([A-Z]+)(.*)" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{URL}" pattern="WebResource.axd" negate="true" />
            <add input="{URL}" matchType="IsFile" negate="true" />
            <add input="{URL}" matchType="IsDirectory" negate="true" />
        </conditions>
    <action type="Redirect" url="{ToLower:{URL}}" />
</rule> 

代码中 [ValidateAntiForgeryToken] 的屏幕截图:enter image description here

当我删除重定向规则时,代码运行良好,并且能够登录到站点。一旦我有了重定向规则,它就会将我导航回同一页面。

我们在UI上使用表单提交进行登录,如下所示。

enter image description here

我尝试在重定向规则中添加更多条件以避免如下所示的 /login url

<add input="{REQUEST_URI}" pattern="/account\/login" negate="true" />
<add input="{URL}" pattern="/account\/login" negate="true" />

但它们没有按预期工作。谁能指导我如何解决这个问题。

添加“[ValidateAntiForgeryToken]”后,我在 get/post api 中也遇到了同样的问题。

提前致谢

C# web-config 防伪令牌

评论

0赞 CodeCaster 3/17/2023
嗯,它是.因此,您的模式不匹配,您的语言包含大写字母,查询字符串也匹配。/en-US/account/login?returnUrl

答: 暂无答案