我正在构建一个需要用户在启动时登录的应用程序。
认证过程如下:
- 用户输入用户名/密码。
- 客户端将用户名 + 密码发送到 Web 服务。
- Web 服务使用来自数据库的散列密码对用户进行身份验证。
Web 服务向客户端返回一个令牌,其中包含以下三个值之一:
1) 用户名无效。
2) 密码无效。
3) 用户被认证。
客户端使用令牌来确定下一步行动。
令牌会在客户端进行的每个后续调用中传递给服务。如果用户未通过身份验证,服务将拒绝呼叫。
令牌被封装在一个 DTO 中,它是一个 DataContract。令牌本身是一个 DataMember。DataMembers 要求该属性有一个 setter 和一个 getter。这意味着客户端现在可以为令牌设置一个值,这很糟糕。客户现在可以在技术上将自己标记为经过身份验证。
我将如何阻止客户修改令牌的值?有什么模式可以帮助我吗?