c# - 使用自定义数据库而不是 ASPNETDB 的 ASP.NET MVC 身份验证?

标签 c# asp.net sql-server asp.net-mvc authentication

我的主应用程序数据库中已有一个 User 表,其中包含一个电子邮件地址(将用作用户名)和一个密码。我想使用我的数据库而不是默认身份验证数据库 (ASPNETDB) 进行身份验证。

问题:

  1. 这是个坏主意吗?使用我自己的数据库进行身份验证是不是一大堆蠕虫病毒?

  2. 这样做会增加多少工作量?我已经有了用于散列密码的代码和一个将检查电子邮件和密码是否与数据库匹配的查询。所以,我不会从头开始。

  3. 要使用我的数据库而不是 ASPNETDB,我需要做什么?我希望这可以通过几个简单的步骤来描述,但如果不能,你能告诉我好的来源吗?

更新

我仍在寻找关于我的第三个问题的更多细节。我需要编写自己的 MembershipProvider 吗?我需要对 web.config 文件进行哪些更改?如果我编写自己的解决方案,[Authorize] 属性是否仍然有效?我可以使用自动生成的 AccountController 进行一些小的修改,还是我基本上需要从头开始重写帐户 Controller ?

最佳答案

很简单,你需要派生MembershipProvider并实现ValidateUser方法。看看这个post .我将自定义成员资格提供程序与 Postgres 和 MVC 一起使用就好了。

关于c# - 使用自定义数据库而不是 ASPNETDB 的 ASP.NET MVC 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054973/

相关文章:

sql-server - XML 列 - 无法对推断类型中包含类型 'xxx' 的表达式进行原子化/应用 data()

c# - 代码契约(Contract) : false warning "Possibly unboxing a null reference"

c# - 代码契约和异步

c# - 立即开始使用 EDMX

asp.net - http header 中非ascii值的当前状态?

sql-server - SQL Server 数据库还原错误 : specified cast is not valid. (SqlManagerUI)

c++ - 为什么 ADO BeginTrans() 做的事情与 "BEGIN TRANSACTION"不同?

c# - 使用 MSDeploy API 获取 Web 服务器的依赖项

c# - 如何使用 C# 将子节点添加到 XML 文件中的根元素

ASP.NET TextBox TextMode 设置为 Date 在 IE 11 中不起作用