我尝试实现ASP.NET身份验证和授权对我们现有的数据库之上。 我们有一个网站调用Web服务来获取其数据。 要使用web服务,我需要提供用户名和密码。 知道了,我决定实施的IIdentity和IPrincipal的存储加密的密码,并能够执行web服务调用时提供。 在未来,我们可能要使用更多的内置asp.net的安全,所以我实现了成员资格和角色提供并覆盖正是我需要(的ValidateUser和GetRoles)虽然,用户验证感谢向会员提供后实现我还是我自己CustomIdentity设置为Context.User是能够在需要时找回密码。
如允许用户访问该网页它,只要正常使用。 但是当用户被拒绝,而不是抛出一个AccessDeniedException,框架洒在我的CustomIdentity一个序列化异常。 我发现了一个与此链接描述更多的细节完全类似的行为 ,但没有答案已张贴。
我的例外是完全一样上面的链接
Type is not resolved for member'CW.CustomAuthentication.CWIdentity,CW.CustomAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.Serialization.SerializationException: Type is not resolved for member 'CW.CustomAuthentication.CWIdentity,CW.CustomAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SerializationException: Type is not resolved for member 'CW.CustomAuthentication.CWIdentity,CW.CustomAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.]
Microsoft.VisualStudio.WebHost.Connection.get_RemoteIP() +0
Microsoft.VisualStudio.WebHost.Request.GetRemoteAddress() +65
System.Web.HttpRequest.get_UserHostAddress() +18
System.Web.HttpRequest.get_IsLocal() +13
System.Web.Configuration.CustomErrorsSection.CustomErrorsEnabled(HttpRequest request) +86
System.Web.HttpContext.get_IsCustomErrorEnabled() +42
System.Web.Configuration.UrlAuthFailedErrorFormatter.GetErrorText(HttpContext context) +16
System.Web.Security.UrlAuthorizationModule.WriteErrorMessage(HttpContext context) +29
System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +8777783
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
它是正确使用成员和自定义的IIdentity和IPrincipal的在同一时间? 如果不是,如果我使用会员和角色提供其中添加像密码或其他用户数据属性?
最好的祝福,
斯特凡Erbrech