我正在为工作创建一个.NET c#业务应用程序/原型。老实说,我有一点乐趣。它依赖于SQL 2012,C#.NET 4 WPF,我计划使用实体框架。
我们共有5个用户和3个角色。设置可靠的用户登录系统的最佳方法是什么?这是一个原型,我只是需要它才能工作,但原则上我希望它是可靠的,所以我可以将它扩展到未来的目的,可能是10或15个用户。
系统需要能够接受新用户和密码,然后为其分配角色。
编辑:
我正在构建应用程序,使其位于客户端计算机上,该计算机通过网络与内部服务器交互,以与sql数据库通信。
答案 0 :(得分:3)
这是我的建议:
以这种方式构建数据库
User UserRoles Roles
--------- --------------- ------------
UserID(PK) UserID(FK)(PK) RoleID(PK)
UserName RoleID(FK)(PK) RoleName
Password RoleDescription
此数据库模型将在EF中为您设置多对多关系,以确保用户可以属于多个角色。然后,您可以为您的应用程序创建自己的身份验证模型,因为Membership Provider不能与WPF一起使用,但它应该很简单。
当您登录用户时,您可以使用EF查询数据库以了解用户所属的角色,以便您可以对结果执行所需的操作。
我希望这会有所帮助。
答案 1 :(得分:1)
我建议使用InBuilt会员提供商,因为它拥有为您编写的大部分锅炉板代码,并且对微软公平,它不是太糟糕且可扩展。
http://msdn.microsoft.com/en-gb/library/system.web.security.membershipprovider.aspx
修改强> 啊,对不起,我想你提到你正在使用WPF。遗憾的是,成员资格提供程序是ASP.NET特有的,在WPF中不可用。
答案 2 :(得分:-2)
具有可靠安全性和角色的业务应用程序 如果客户端直接访问数据库,则可以攻击该SQL连接和那些SQL凭据。
Windows Communication Foundation Authentication Service Overview
WPF Security Strategy - Platform Security
您仍然可以使用EF作为角色和登录的后盾。