我有一个连接到WCF服务的WPF应用程序。我需要对用户进行身份验证以调用我的服务的任何方法,但如果您没有帐户,我还需要用户注册。
我首先考虑使用usernamePasswordvaldator但我找不到一种方法来创建一个不通过验证器类的validate方法的寄存器方法。
然后我看到了MembershipPorvider,但没有找到任何符合我案例的例子。
答案 0 :(得分:0)
您可以在数据库中创建特殊用户。将此用户添加到特殊成员角色。 此特殊用户可以仅创建新用户,它对服务方法没有任何其他权限。
您应该在所有方法上添加一个PriciplePermission attirbute,并允许您的新角色(CreateUserRole)仅访问CreateUser方法。
[PrincipalPermission(SecurityAction.Demand, Role = "CreateUserRole")]
public void CreateUser(string username, string password)
所有其他方法应该有不同的角色:
[PrincipalPermission(SecurityAction.Demand, Role = "ADMINISTRATORS")]
public bool DeleteUser(string username)
这样这个特殊用户只能访问CreateUser方法。