我尝试在现有数据库的基础上实现ASP.NET身份验证和授权.
我们有一个网站调用webservice来获取其数据.要使用Web服务,我需要提供用户名和密码.
知道这一点,我决定实施IIdentity和IPrincipal来存储加密的密码,并能够在执行webservice调用时提供它.
在将来,我们可能希望使用更多asp.net的内置安全性,因此我实现了成员资格和角色提供程序,并覆盖了我需要的内容(ValidateUser和GetRoles)
但是,在通过成员资格提供程序实现验证用户之后,我仍然将自己的CustomIdentity设置为Context.User,以便能够在需要时检索其密码.
我们有一个网站调用webservice来获取其数据.要使用Web服务,我需要提供用户名和密码.
知道这一点,我决定实施IIdentity和IPrincipal来存储加密的密码,并能够在执行webservice调用时提供它.
在将来,我们可能希望使用更多asp.net的内置安全性,因此我实现了成员资格和角色提供程序,并覆盖了我需要的内容(ValidateUser和GetRoles)
但是,在通过成员资格提供程序实现验证用户之后,我仍然将自己的CustomIdentity设置为Context.User,以便能够在需要时检索其密码.
只要允许用户访问该页面,它就能完美运行.但是当用户被拒绝时,框架会在我的CustomIdentity上抛出序列化异常,而不是抛出AccessDeniedException.
我找到了perfectly similar behaviour with more details described on this link,但没有回复.
我的例外情况与上面的链接完全相同
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,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,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是否正确?
如果不是,如果我使用成员资格和角色提供者,在哪里添加密码或其他用户数据等属性?
最好的祝福,
Stephane Erbrech