在 TFS2015 内部部署中,可以禁用从 Web 界面编辑文件的功能吗?
此功能似乎没有考虑签入政策。
我通过安装 IIS URL 重写模块并添加一个重写规则来解决这个问题,该规则将一个返回403
到POSTs
快速编辑调用的 api 方法:
<rewrite>
<rules>
<rule name="PreventQuickEditCheckin" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{URL}" pattern="/tfs/collection/_apis/tfvc/changesets" />
<add input="{REQUEST_METHOD}" pattern="POST" />
<add input="{HEADER_X-Requested-With}" pattern="XMLHttpRequest" />
</conditions>
<action type="CustomResponse"
statusCode="403"
statusReason="Forbidden: This action is not permitted."
statusDescription="Quick edit is currently disabled to prevent
checkin policies being circumvented." />
</rule>
</rules>
</rewrite>
仅对带有标头的请求X-Requested-With
(由 jQuery 添加)执行此操作的附加约束是确保此方法仅被来自 TFS Web 的请求阻止。
虽然我没有看到这对 TFS 功能的其他方面有任何影响,但我不保证这会产生意外或不希望的结果!