【发布时间】:2011-10-17 18:32:35
【问题描述】:
我一直在关注一篇关于如何使用 .net 实现自定义基本身份验证的文章。
这是article
代码使用从 IIdentity 派生的接口 - IBasicUser。 BasicUser 类实现了 IBasicUser。 创建一个 BasicUser 的实例,并从中构造一个 GenericPrincipal。
IBasicUser bu = new BasicUser();
context.Context.User = new GenericPrincipal(bu, new string[] { });
当我运行代码时出现异常。
Type 'Smithfamily.Blog.Samples.BasicUser' in assembly 'LM_TESTS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
于是我查看了Reflector中的System.Security.Principal.GenericIdentity类,发现确实标有[Serializable. ComVisible(true)]
IIdentity 上的Documentation 没有说明需要可序列化的实现。但是,从异常和反射器中,我认为确实如此。所以我将 [Serializable] 属性添加到 BasicUser 类中。
现在我在运行代码时遇到了一个新异常。
[SerializationException: Type is not resolved for member 'Smithfamily.Blog.Samples.BasicUser,LM_TESTS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.]
我对序列化不是很熟悉,也不太了解发生了什么或问题出在哪里。请你能帮我解惑。谢谢。
【问题讨论】:
-
这里有一个解决方法:stackoverflow.com/questions/1884030/…
标签: c# .net serialization