好的,这是一般的问题。我正在使用System.Web.Security.SqlMembershipProvider登录和注册我的网站。我在我的视图页面中使用Razor语法(.cshtml文件)。其中一个页面是“忘记密码”页面。在这个页面中,我想使用一些只有WebMatrix.WebData.WebSecurity支持的代码。我已经在web.config中添加了必要的代码,所以这不是我的问题。
我的问题是现在我的Register代码不能工作了。具体地说,是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);,我不被允许这样做。那么,有没有办法指定要调用哪个函数呢?或者是其他的解决方案?
发布于 2011-07-01 08:11:46
当你使用
Membership.CreateUser()或
Membership.Provider.CreateUser()如果看不到更多的代码,就很难提供帮助。
发布于 2011-07-01 14:54:13
在深入研究之前,您可能需要检查并查看微软新的ASP.NET通用提供程序是否适合您。它们很可能是下一版本ASP.NET的默认提供程序。
在您的示例中,等效的提供程序是System.Web.Providers.DefaultMembershipProvider
https://stackoverflow.com/questions/6540955
复制相似问题