自定义SimpleMembershipProvider

时间:2013-08-09 22:19:51

标签: c# asp.net security asp.net-mvc-4 simplemembership

是否可以自定义SimpleMembershipProvider,而不仅仅需要登录用户名和密码?

例如,假设我想要4条信息:

Login, Password, Abc, Xyz
(Abc and Xyz are just generic placeholders, for now)

Suppose your login is: 

john/mypassword555/1/1 (authenticated) -> pagex
john/mypassword999/1/2 (authenticated) -> pagey

bob/mypassword333/1/1 (authenticated) -> pagex
bob/mypassword333/1/2 (authenticated) ->pagey
bob/mypassword333/1/3 (authenticated) -> pagez

只有john / mypassword或bob / mypassword333就不够了。

我希望能够为所有登录或不同的密码设置相同的密码,但在Request.IsAuthenticated为true之前仍需要所有4个字段。

2 个答案:

答案 0 :(得分:0)

我不确定这是不是你的意思,但是:

如果您需要数据A,B和C以及用于登录的密码,您可以将A,B和C存储到对象结构中,将该对象序列化为字符串,并将该字符串传递给您的自定义成员资格提供程序作为“登录”以及密码,然后将对象反序列化回其部分。此时,您可以在自定义提供程序中执行任何操作。

答案 1 :(得分:0)

一种简单的方法是使用内置的成员资格提供程序,一旦登录,将它们带到另一个页面,在那里输入附加信息。

当他们输入附加信息时,您可以设置一个会使用自定义授权过滤器检查的会话/ Cookie。

这样,您可以确保在Request.IsAuthenticated评估为true之前提供了所有4个字段。