调试ASP.NET MVC3自定义成员资格提供程序

时间:2012-07-09 08:26:22

标签: c# asp.net asp.net-mvc-3 membership-provider

我试图测试我的asp.net mvc3自定义成员资格提供程序。我似乎无法进入任何代码 - 我现在要做的就是验证用户是否已登录。

到目前为止,我所做的是:

实现abstact MembershipProvider类:

public class SSDSMembershipProvider : MembershipProvider
{
        public override bool ValidateUser(string username, string password)
        {
            return true;
        }

修改web.config以使用我的新提供程序:

  <membership defaultProvider="SSDSMembershipProvider">
      <providers>
        <clear/>
        <add name="SSDSMembershipProvider" type="MvcApplication6.Infrastructure.SSDSMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

为about HomeController添加了Authorize属性:

    [Authorize]
    public ActionResult About()
    {
        return View();
    } 

authorize属性是否会导致调用ValidateUser方法?如果我在ValidateUser上放置一个断点,它就不会进入,浏览器直接进入登录页面。我在这里采取了正确的方法吗?

2 个答案:

答案 0 :(得分:2)

您是否更改了AccountController中的代码?

您必须将方法“LogOn”中的代码从Mebership.ValidateUser更改为SSDSMembershipProvider-Class的新实例,然后调用ValidateUser方法。

答案 1 :(得分:1)

Authorize只是将用户重定向到登录页面,一旦用户输入他/她的凭据并提交登录表单,就会调用用户验证。