2013-04-08 84 views
0

我正在为工作创建一个小小的.NET c#业务应用程序/原型。说实话,我有点乐子。它依赖于SQL 2012,C#.NET 4 WPF,并且我计划推出实体框架。原型业务应用程序的用户登录系统

我们有5个用户总数和3个角色。建立稳固的用户登录系统的最佳方式是什么?这是一个原型,我只是需要它的工作,但原则上我希望它是坚实的,所以我可以将它扩展到未来的目的可能10或15个用户。

系统需要能够接受新用户和密码,然后才能为其分配角色。

编辑:

我建立坐在其通过网络内部服务器与SQL数据库交互说话客户机上的应用。

+0

你需要告诉我们你如何与SQL服务器连接。我会假设某种中间层,很可能在网络服务器上,但没有提到这一点。 – spender 2013-04-08 15:44:35

回答

3

这是我的建议:

构建DB这样

User   UserRoles    Roles 
---------  ---------------   ------------ 
UserID(PK)   UserID(FK)(PK)   RoleID(PK) 
UserName   RoleID(FK)(PK)   RoleName 
Password         RoleDescription 

这个DB模式将建立一个许多人在EF一对多的关系,为您保证用户可以属于多个角色。然后,您可以为您的应用程序创建自己的身份验证模型,因为Membership Provider不适用于WPF,但它应该很简单。

当您登录用户时,您可以使用EF查询数据库以了解用户所属的角色,以便您可以对结果执行所需的操作。

我希望这会有所帮助。

1

我会建议使用InBuilt会员供应商,因为它拥有大部分为您编写的锅炉代码,并公平对待微软,它不是太糟糕,可扩展。

http://msdn.microsoft.com/en-gb/library/system.web.security.membershipprovider.aspx

编辑: 啊,对不起,我错过了你,你正在使用WPF提。不幸的是,成员资格提供程序是ASP.NET特有的,并不适用于WPF。

+1

我认为使用成员资格工具创建数据库对象,然后从中建立你自己的模型还是相当简单的。 – 2013-04-08 16:26:33

+0

@agrothe你看过表中的membeshipservice创建的吗? – Paparazzi 2013-04-08 16:34:58

+0

@Blam,是的,我修改它们来创建一个混合auth服务,使用共享db用户进行用户身份验证,然后在验证后切换到sql server auth。实际上只需要几个表来实施解决方案。 – 2013-04-08 18:02:35

-2

具有可靠安全性和角色的业务应用程序。
如果客户端直接敲击数据库,那么该SQL连接和这些SQL凭据可能会被黑客入侵。

Windows Communication Foundation Authentication Service Overview

WPF Security Strategy - Platform Security

你仍然可以使用EF为后盾的角色和登录。

+0

请问为什么要投票? – Paparazzi 2013-04-08 16:18:08

+0

我没有投票,但你没有回答这个问题。有效的担忧?当然,但至少在你的回答中回答这个问题。 – 2013-04-08 16:25:07

+0

@agrothe具有可靠安全性和角色的业务应用程序。我会澄清。 – Paparazzi 2013-04-08 16:30:01