2014-11-24 150 views
1

陈述我正在开发一个项目,根据您编译项目的方式,您有一个安全且不安全的项目版本。简而言之,我想知道如何取消激活ValidateAntiForgeryToken,具体取决于我正在运行的是哪个版本。IF /其他属性

[AllowAnonymous] 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult ProductInfo(ProductInfoModel review) 
    { 
     ... 

    } 
+5

'#if'允许您根据编译设置排除任意代码。 – 2014-11-24 14:25:52

回答

0

定义编译符号(也许称它为安全),然后在网上查出该符号:

[AllowAnonymous] 
    [HttpPost] 
#if SECURED 
    [ValidateAntiForgeryToken] 
#endif 
    public ActionResult ProductInfo(ProductInfoModel review) 
    { 
     ... 
    } 

如果你不喜欢它添加到你的项目的属性,你也可以定义它从一个MSBuild命令:

MSBuild [...] /p:DefineConstants=SECURED 
0

你有每个单独的版本?如果是这样,你可以添加一个符号(项目属性 - >生成)到你不希望它运行的构建,并在你不想运行的代码周围添加一个#IF属性。

#if !DISABLEFORGERY 
    ... 
#endif 

你可以把它放在消费类的属性定义中,但是你必须在多个地方(可能)重复它。