1

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

到目前为止我所做的是:

实现抽象 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();
    } 

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

4

2 回答 2

2

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

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

于 2012-07-09T09:16:49.350 回答
1

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

于 2012-07-09T10:11:38.857 回答