Customizing SimpleMembershipProvider
本文关键字:SimpleMembershipProvider Customizing | 更新日期: 2023-09-27 18:27:01
是否可以自定义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个字段。
我不确定这是否是你的意思,但是:
如果您需要数据A、B和C加上密码才能登录,您可以将A、B、C存储到对象结构中,将该对象序列化为字符串,并将该字符串作为"登录"和密码一起传递给您的自定义成员资格提供程序,然后将对象反序列化回其各个部分。在这一点上,您可以在自定义提供程序中执行任何您想要的操作。
一个简单的方法是只使用内置的成员资格提供程序,一旦他们登录,就将他们带到另一个页面,在那里他们将输入附加信息。
当他们输入附加信息时,您可以设置一个会话/Cookie,您将使用自定义授权过滤器进行检查。
通过这种方式,您可以确保在Request.IsAuthenticated计算为true之前提供了所有4个字段。