我有一个使用 Asp.Net Membership 登录的 Asp.Net Web 应用程序。现在我正在构建一个桌面应用程序,我希望用户使用他们的网站帐户安全地登录桌面应用程序。
我从网络上的 WCF 服务开始,用户名、密码用 SHA256 散列,但现在我不知道如何检查密码是否正确。Asp.Net Membership 也使用盐来存储密码。我怎样才能做到这一点?
我有一个使用 Asp.Net Membership 登录的 Asp.Net Web 应用程序。现在我正在构建一个桌面应用程序,我希望用户使用他们的网站帐户安全地登录桌面应用程序。
我从网络上的 WCF 服务开始,用户名、密码用 SHA256 散列,但现在我不知道如何检查密码是否正确。Asp.Net Membership 也使用盐来存储密码。我怎样才能做到这一点?
我将在 ASP.NET webapp 中创建一个 WCF 服务,它接受明文用户名和密码,当然还使用传输级加密。在此服务中,我将调用 MembershipProvider 的 ValidateUser() 方法。
或者您可以实现更安全的身份验证机制,但在这种情况下,您应该使用自己的 MembershipProvider,因为默认提供者只接受明文密码,并且无论它做什么都是秘密的。
诀窍在于,如果您将 WCF 服务放在您的 webapp 中,那么它的行为将与您的浏览器客户端一样。如果您对浏览器客户端使用 HTTPS,那么对 WCF 使用相同的 HTTPS 通道,就可以了。