好的,这是一般的问题。我正在使用System.Web.Security.SqlMembershipProvider
登录并注册我的网站。我正在为我的视图页面使用Razor语法(.cshtml文件)。其中一个页面是“忘记密码”页面。在此页面中,我想使用仅WebMatrix.WebData.WebSecurity
支持的一些代码。我已经为web.config添加了必要的代码以及所有这些,所以这不是我的问题。
我的问题是现在我的注册码无效。具体来说,就是CreateUser方法。发生的事情是,即使VisualStudio将CreateUser方法显示为MembershipProvider.CreateUser
,当实际调用该函数时(我已经查看了堆栈调用,所以我确定这一点)是WebMatrix.WebData.SimpleMembershipProvider.CreateUser
。系统不支持此功能(根据异常声明)。显然,MembershipProvider和WebMatrix的CreateUser方法具有完全相同的签名,因此这似乎是问题所在。
这是方法代码,它的价值,但是,当我在VisualStudio中创建网站时,这段代码是自动创建的。顺便说一下,我无法更改参数:
_provider.CreateUser(userName, password, email, null, null, true, null, out status);
那么,解决方案是什么?我希望能够在代码中明确指定方法。类似的事情:_provider.MembershipProvider.CreateUser(userName, password, email, null, null, true, null, out status);
唉,我不允许这样做。那么,有没有办法指定要调用的函数?或者其他一些解决方案?
答案 0 :(得分:0)
使用
时会发生什么Membership.CreateUser()
或
Membership.Provider.CreateUser()
如果没有看到更多代码,很难提供帮助。
答案 1 :(得分:0)
在深入挖掘之前,您可能需要检查并查看Microsoft的新 ASP.NET Universal Providers 是否适合您。它们很可能是下一版ASP.NET的默认提供程序。
在您的情况下,等效的提供者将是System.Web.Providers.DefaultMembershipProvider