我有關於MVC Anti僞造令牌的問題。 這樣當我做我的身份驗證我有僞代碼:驗證防僞的問題
var user = userRepository.GetByEmail(email);
System.Threading.Thread.CurrentPrincipal = HttpContext.Current.User = user;
這樣做我能得到當前用戶在我這樣的代碼:
var user = HttpContext.Current.User as EntityUser;
這工作正常,直到我將[ValidateAntiForgeryToken]屬性添加到操作。 當我添加我得到的屬性
所需的防僞標記未提供或無效。
如果我註釋掉這一行:
System.Threading.Thread.CurrentPrincipal = HttpContext.Current.User = user;
的防僞驗證工作正常,但我沒有讓我的「EntityUser」從HttpContext的我的便捷方式。 有關如何解決此問題的任何想法? 致以問候 Mikael
我不認爲這些是相關的,這會使您的觀察看起來很奇怪。我在應用程序中使用自定義校長和AFT,並且工作正常。 – Will 2010-05-14 15:22:55
但是,如果我註釋掉設置CurrentPrincipal和Current.user的行,Antiforgery驗證將起作用。 你使用MVC2嗎? (Iforgot提到我使用MVC2)。據我瞭解,MS已經改變了AntiForgeryToken的實施。 在這裏看到一個關於它的SO問題:http://stackoverflow.com/questions/2697772/mvc-2-antiforgerytoken-why-symmetric-encryption-iprinciple – 2010-05-15 20:35:07