Asp.net mvc 3 Asp.Net MVC 3成员资格提供程序和客户端证书

Asp.net mvc 3 Asp.Net MVC 3成员资格提供程序和客户端证书,asp.net-mvc-3,asp.net-membership,client-certificates,Asp.net Mvc 3,Asp.net Membership,Client Certificates,我在考虑为我的web应用程序编写自己的会员资格提供商。人们通常不会注册,但会提供登录信息。那么,会籍不是一件正确的事情吗 我仍然会有一些角色,比如,我可能无法让人们使用ClientCertificate而不是普通登录进行身份验证。我仍然不想让它们被验证为成员身份(证书和数据库中有一个可识别的字段,我可以使用),也不想使用角色等等 MembershipProvider是否仅用于原始登录身份验证而非授权 当用户被验证时,似乎不会发生任何特殊情况,因此,授权管理员是否知道谁是自动注册的?如果您想提供登

我在考虑为我的web应用程序编写自己的会员资格提供商。人们通常不会注册,但会提供登录信息。那么,会籍不是一件正确的事情吗

我仍然会有一些角色,比如,我可能无法让人们使用ClientCertificate而不是普通登录进行身份验证。我仍然不想让它们被验证为成员身份(证书和数据库中有一个可识别的字段,我可以使用),也不想使用角色等等

MembershipProvider是否仅用于原始登录身份验证而非授权


当用户被验证时,似乎不会发生任何特殊情况,因此,授权管理员是否知道谁是自动注册的?

如果您想提供登录信息,现有的成员资格可以正常工作。用户注册不需要由用户发起。只需使用标准代码并让站点管理员运行即可


是的,会员资格仅用于身份验证。授权的现成功能是角色功能

因此,在调用membership.validate方法时,它不会存储有关用户的任何信息?AutorizeAttribute如何知道用户是否已授权?AuthorizeAttribute只查看
user.IsAuthenticated
。成员资格决定了这一点。它使用公钥加密/签名。成员身份将解密用户的cookie并检查其签名。然后,使用ClientCertificate进行身份验证的人将出现问题。他们不需要密码来验证,但仍然必须在成员表中。我正在考虑为这些人在成员资格提供程序中定义一个新方法,但我不明白ValidateUser在哪里设置IsAuthenticated属性;即使是专家也很难做到这一点。请考虑联合身份提供程序或发送证书,并直接调用通常的成员资格API来登记用户。我相信我们不是在同一页上。有预定义的成员可以登录。他们可以使用用户名/密码,也可以使用ClientCertificate。我从ClientCertificate获得一个ID,可以用来匹配预定义的成员,从而获得他的userrole等等。我只是不明白当设置了[Authorize]时,它如何知道用户何时经过身份验证。您可以将用户名命名为User.IsAuthenticated,但该设置在验证过程中的何处,以便我可以为那些通过ClientCertificate验证的用户设置它。可能是cookie中的用户名吗?