我有一個現有的.NET 4溶液在VS2010開發的,它使用的是用於定義當前請求的用戶的IIdentity的實現。我現在想用vs2012來繼續它的發展。ClaimsIdentity的NullReferenceException安裝後.NET 4.5
我在vs2012中打開了解決方案,並將屬性中的目標框架設置爲.Net 4.但是,當我運行該解決方案時,Web服務器反序列化GenericIdentity對象時出現異常。發生異常
at System.Security.Claims.ClaimsIdentity.<get_Claims>d__0.MoveNext()
at System.Security.Principal.GenericIdentity.OnDeserializedMethod
(StreamingContext context)
異常的原因似乎是屬性聲明未初始化。
我已經知道:
.NET 4.5的更新.NET 4的目標機器上,而不是做一個側由端安裝。
GenericIdentity現在從一類新ClaimsIdentity NET中衍生4.5
設置目標框架.NET 4意味着雖然代碼仍然與.NET 4.0運行,則4.5實施下的使用涵蓋,即你不能在Visual Studio對象瀏覽器中看到層次結構,但調試器和反射器顯示派生。
的GenericIdentity.OnDeserializedMethod訪問ClaimsIdentity索賠財產,但不檢查空,導致NullReferenceException異常
一個solution我碰到參與使我的自定義標識對象從System.MarshalByRefObject繼承,但問題是該自定義Identity對象由跨組織中的所有系統使用的「單一登錄」.dll提供。這意味着我無法訪問它來改變它的繼承習慣。
是否有替代解決方案或解決此問題的工作?
這是否再現與.NET 4.5.1發佈候選版本會出現此問題?從這裏下載 - > http://www.microsoft.com/en-us/download/details.aspx?id=39328。如果它重現,.NET框架團隊想要看看。請通過Microsoft網址com的netfx45compat給我們發送代碼示例。謝謝! – Varun
當我得到一些停機時間,我會用4.5.1嘗試,讓你知道結果 –
我可以證實,這個問題不會與4.5.1版 –