2011-06-27 71 views
1

我想知道什么基本协议是用于存储用户在数据库中,创建帐户,并验证它们 - 与ASP.NET MVC 3框架(使用C#)和Azure SQL。基本登录协议

更具体地说:

1)凡在ASP.NET C#MVC3 Visual Studio项目做的我写的,只有在后端运行的代码?比如以管理员身份登录到我的数据库,所以我可以写入数据库并从中读取数据。

2.)我应该在哪里使用MVC框架进行数据库调用?我是否从控制器调用后端功能(例如 - 在数据库中创建新帐户)?

感谢您的帮助!

回答

2

我不是100%确定您是否在谈论SQL用户或应用程序用户。

然而,一般来说,什么ASP.Net MVC应用程序做的是:

  • 他们使用一个或两个定义用户连接到数据库(例如,它们可以定义一个读写和不同只读连接类型的查询)
  • 他们使用的应用程序级用户的ASP.Net成员身份API占
  • 他们使用像NHibernate的或实体框架的ORM框架,其他的数据库访问

有很多的教程和文章对这类信息有 - 一个地方去寻找可能是斯科特Hanselman的博客 - 见:

0

1)你可以使用会员资格(我曾经使用过)或者直接编写自己的验证码。会员资格有两个缺点。首先,安装了大量表格和存储过程,但更糟的是,无法通过Membership API更改用户名。尝试告诉客户他们不能更改他们的用户名(通常是他们的电子邮件地址),他们会给你奇怪的外观。

2)忘记EF并使用您自己的存储库,它只是简单地利用SPROC。继续,对EF设计画布进行大量更改,更改数据库模式,并且我可以保证您在某个点或另一个点上遇到“幕后”文件的问题。

+0

确实很难在aspnet成员资格中更改用户名,但可以完成。基本上,它涉及在维护用户标识符的同时重新创建用户 - 并且如果正确执行安全性,则用户将不得不重新输入密码,因为它已被散列,但这在大多数用户名更改流程中会很好地适用。编写自己的身份验证逻辑很少是一个好主意,因为安全性应该留给专家使用。 (如果你是一位安全专家,我对此表示歉意:)) – faester

+0

嗯,我自己并不是安全专家,所以编写我自己的身份验证代码或存储库会很困难。所以我真的在研究可用的Best(TM)。 – user755967