使用System.Web.Security;
我在MVC4中创建了一个resetPassword表单:
using System.Web.Security; [HttpPost] [AllowAnonymous] public ActionResult ResetPassword(ResetPasswordModel model) { MembershipUser u = Membership.GetUser(model.Username); if (HashResetParams(u.UserName,u.ProviderUserKey.ToString()) == model.Key) { string resetCode = u.ResetPassword(); u.ChangePassword(resetCode,model.Password); } return View("ChangePasswordSuccess"); }
知道为什么我点击线路时出现“ResetPassword-指定的方法不支持”错误:
string resetCode = u.ResetPassword();
我想知道它是否与MVC4项目默认使用SimpleMembership实现有关.
解决方法
如果您使用的是
SimpleMembershipProvider,那么是:
By design,the SimpleMembershipProvider class does not implement the
full range of functionality that is possible in ASP.NET membership
providers,as defined in the MembershipProvider class that is used by
all ASP.NET membership providers. Some members are available in the
class because they are inherited from the base class,but will throw
an exception if you access them.
另一种方法是使用SqlMembershipProvider
你应该在你的web.config中有类似的东西:
<membership defaultProvider="sqlProvider" userIsOnlineTimeWindow="15"> <providers> <add name="sqlProvider" type="System.Web.Security.sqlMembershipProvider" connectionStringName="sqlServices" applicationName="MyApplication" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptwindow="10" /> </providers> </membership>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。