我有一個基本的MVC 2測試版應用程序,我試圖實現一個自定義的標識和主體類。在MVC中實現一個自定義標識和IPrincipal
我創建了實現IIdentity和IPrincipal接口的類,實例化它們,然後在Global.asax的Application_AuthenticateRequest中將CustomPrincipal對象分配給Context.User。
這一切都成功,對象看起來不錯。當我開始渲染視圖時,頁面現在失敗。第一次失敗是在下面的代碼行默認LogoOnUserControl觀點:
[ <%= Html.ActionLink("Log Off", "LogOff", "Account") %> ]
如果我拉了這一點,它失敗,那麼在代碼不同的「Html.ActionLink」行。
我收到的錯誤是:
類型的異常 'System.Runtime.Serialization.SerializationException' 發生在WebDev.WebHost40.dll但 不是在用戶代碼來處理
附加信息:類型不是 已解決會員 'Model.Entities.UserIdentity,Model, Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null'。
是否有一些額外的屬性需要在我的標識中實現才能在MVC中使用自定義標識?我試圖在Identity類中實現[Serializable()],但它似乎沒有影響。
更新: 我已經嘗試過3-4種替代方法來實現這一點,但仍然失敗,同樣的錯誤。如果我直接使用GenericIdentity/GenericPrincipal類,它不會報錯。
GenericIdentity ident = new GenericIdentity("jzxcvcx");
GenericPrincipal princ = new GenericPrincipal(ident, null);
Context.User = princ;
但是這讓我無處可去,因爲我試圖使用CustomIdentity來保存幾個屬性。如果我實現了IIdentity/IPrincipal接口或繼承了我的CustomIdentity/CustomPrincipal的GenericIdentity/GenericPrincipal,它將失敗,並顯示上面的原始錯誤。
回覆:向上投...你也看到了類似的問題? – Jay 2009-12-11 13:21:59