我试图测试我的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上放置一个断点,它就不会进入,浏览器直接进入登录页面。我在这里采取了正确的方法吗?
答案 0 :(得分:2)
您是否更改了AccountController中的代码?
您必须将方法“LogOn”中的代码从Mebership.ValidateUser更改为SSDSMembershipProvider-Class的新实例,然后调用ValidateUser方法。
答案 1 :(得分:1)
Authorize
只是将用户重定向到登录页面,一旦用户输入他/她的凭据并提交登录表单,就会调用用户验证。