在MVC网站上进行双重用户名/密码验证?

时间:2011-12-30 20:27:55

标签: asp.net-mvc asp.net-membership

您好,

我已经构建了一个使用Membership的ASP.NET MVC网站,这很好用。在网站beta测试期间,我需要确保只有beta测试人员才能访问我的网站,因此必须进行第二次(真正的第一次登录)登录。

问题是如何在不涉及当前成员资格设置的情况下尽可能简单快速地完成这项工作?

如果用户名和密码是静态/硬编码的,那也没关系,但重要的是一旦外部登录完成,在会话期间将不再有登录请求。重要的是,当前的MVC会员资格与以前一样有效。

2 个答案:

答案 0 :(得分:1)

不幸的是,Forms和BasicAuthentication模式无法一起使用。这是因为HttpContext上只有一个“IPrincipal”变量(IMHO称为User)。但如果您同时使用两种不同的身份验证方案,那么最后一种方案总是会获胜。这就是不支持的原因。人们会得到意想不到的结果。

但它可以很容易地完成:您需要自己实现基本身份验证。这可以在BeginRequest事件期间完成。您可以将它连接到Global.asax(首选)或HTTP模块中。

实施BasicAuth并不复杂:http://en.wikipedia.org/wiki/Basic_access_authentication

如果您想对基本身份验证码内的凭据进行硬编码,您将在30分钟内完成。

答案 1 :(得分:0)

我最终得到了一个新角色(测试员)。这确实涉及很多重构,但似乎工作得很好。

当testuser登录并且站点设置为测试模式时,返回的用户将是“”,这意味着没有用户。