asp.net-membership – 具有自定义成员资格提供程序的MVC 4模板
我想要做的是使用Visual Studio 2012附带的默认MVC 4模板作为我的新项目的基础.但是,我想用自定义成员资格提供程序替换SQL提供程序,以便我可以访问我的RavenDB来获取我的用户.我已经像以前一样实现了自定义提供程序,但WebSecurity方法抛出了以下异常.
这行代码:
具体方法是:
抛出这个例外:
现在我无法调用InitializeDatabaseConnection,因为我的提供程序不是SQL提供程序.此方法需要SQL提供程序和SQL连接字符串.这是一个常见问题还是我错过了什么?为什么必须初始化WebSecurity,为什么只能使用SQL提供程序进行连接? 我是否必须将代码更改为不使用WebSecurity类? 我整天都在这里,我很累.我希望我没有忽视一些简单的事情.也许还有一个朗姆酒和可乐会帮助…… 更新:2012年8月19日 我反编译GetUserId方法,发现它失败的唯一原因是因为VerifyProvider调用. public static int GetUserId(string userName) { WebSecurity.VerifyProvider(); MembershipUser user = Membership.GetUser(userName); if (user == null) return -1; else return (int) user.ProviderUserKey; } private static ExtendedMembershipProvider VerifyProvider() { ExtendedMembershipProvider membershipProvider = Membership.Provider as ExtendedMembershipProvider; if (membershipProvider == null) throw new InvalidOperationException(WebDataResources.Security_NoExtendedMembershipProvider); membershipProvider.VerifyInitialized(); return membershipProvider; } 现在,它在VerifyProvider方法中失败的唯一原因是因为调用了VerifyInitialized,我无法在我的成员资格提供程序中覆盖它.此外,如果它没有调用我的提供程序,那么我不确定在处理VerifyInitialized时调用了什么代码. internal virtual void VerifyInitialized() { } 我正在删除Web.Config中的所有其他成员资格提供程序.至少我想我是.这是条目. <membership defaultProvider="RavenMembershipProvider"> <providers> <clear /> <add name="RavenMembershipProvider" type="BigGunsGym.Infrastructure.Providers.RavenMembershipProvider" /> </providers> </membership> 解决方法
事实证明我让我的提供者继承自SimpleMembershipProvider而不是ExtendedMembershipProvider.我认为没关系,因为SimpleMembershipProvider继承了ExtendedMembershipProvider,但它不起作用.
将我的提供程序更改为继承自ExtendedMembershipProvider后,错误就消失了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC – 从单个控制器动作返回不同的
- asp.net – 什么时候在普通的HTML上使用runat =“server”
- asp.net-web-api – GlobalConfiguration – 尝试访问字段’
- 在发布asp.net Web API之后,ASP.NET MVC框架的未来是什么?
- 检测ASP.NET网站的出站连接排队
- asp.net-mvc – 使用TFS 2015 Build构建和部署Web应用程序
- asp.net-mvc – 页面重定向不起作用
- asp.net-mvc – scanMap的目的.CallingAssembly,scan.WithD
- 在ASP.NET Identity中添加角色
- 在ASP.NET MVC 3中更改Membership.ValidateUser()和其他内容
- asp-classic – 用于新的Web应用程序的经典ASP与
- 你使用ASP.NET MVC Action方法做了什么聪明的事情
- asp.net-mvc – ALTER TABLE DROP COLUMN失败,因
- asp.net-mvc – 如何在ASP.NET MVC w / VB.NET中
- ASP.NET Core 2.0 Web API基于JWT自定义策略授权
- asp.net-mvc – ASP.NET MVC:在另一个动作中获取
- ASP.NET – 如何引用不在app_code中的类
- 在asp.net中回发
- 在asp.net中使用太多会话的缺点
- 在IIS托管的asp.net Web应用程序中打开页面时“无