【发布时间】:2012-07-09 08:26:22
【问题描述】:
我正在尝试测试我的 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();
}
authorize 属性是否会导致调用 ValidateUser 方法?如果我在 ValidateUser 上设置断点,它不会介入,浏览器会直接进入登录页面。我在这里采取了正确的方法吗?
【问题讨论】:
-
Authorize只是将用户重定向到登录页面,一旦用户输入他/她的凭据并提交登录表单,就会调用验证用户。 -
您是否在
中设置了 ...? -
@Furqan 啊,谢谢,至少我现在知道 CustomMembership 提供程序已正确配置-尽管我登录后它仍然不会调用 ValidateUser。我不会使用表单身份验证 - 我实际上需要使用作为处理用户登录的应用程序的 http 请求的一部分传递的用户名和密码。
-
@tschmit007 身份验证模式设置为表单 - 我意识到我需要更改此设置,因为我需要使用作为登录应用程序请求的一部分传递的用户名和密码
-
@Furqan 如果您希望我接受声誉,请将您的评论更改为答案
标签: c# asp.net asp.net-mvc-3 membership-provider