2014-11-24 114 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 

你可以把它放在消費類的屬性定義中,但是你必須在多個地方(可能)重複它。