【问题标题】:Map asp.net core 2.0 Identity to existing DB schema将 asp.net core 2.0 Identity 映射到现有数据库模式
【发布时间】:2018-04-24 09:02:31
【问题描述】:

我用 asp.net core 2.0 MVC 构建了一个小型 Web 应用程序。在这个 Web 应用程序中,到目前为止,我没有实现任何身份验证方法。

现在我有一个 MSSQL 数据库在后台运行,我可以从数据库中添加/查看/编辑/删除用户。 我改编了this tutorial 并密切关注它。不过我还添加了一些功能,比如本地化和其他东西,一切都运行得非常顺利。

我的下一个目标是启用身份验证和授权。认证部分应简单明了。目标是应用程序将作为 Intranet 解决方案运行。这意味着身份验证方法只需要检查 Windows 用户是否存在于前面提到的数据库中。我不想创建单独的登录名。但是,可能是活动目录中有一个 Windows 用户,它不是数据库的一部分。这个用户应该只能看到一个默认的错误页面。

我进行了相当大的研究,也尝试了很多不同的东西,但是,我绝对没有找到任何关于这部分的“数据库优先”教程或任何其他解释做什么的文档。

我实际上“只是”想教 asp.net core 2.0 身份框架,它应该查看我的用户表并检查当前 Windows 用户是否存在,如果不存在,则将他转发到错误页面。 第二步是从映射表中加载分配给该用户的所有角色。

我们将不胜感激任何形式的帮助。

【问题讨论】:

  • 你将如何使用 Windows 用户更新 SQL ????有一个 user.Identity 对象将返回 windows 登录用户,它在应用程序加载时可用
  • 就像我说的,这部分已经写好并且可以工作了。我在用户表中手动输入 ActiveDirectory 用户名。我知道 User.Identity 对象 - 但是如果我的 sql 用户表中存在 User.Identity.Name ,我仍然不知道在哪里写我的请求?我找到了 IActionFilter 类 - 但是我不确定这是否适合进行此检查!?
  • 在 startup.cs 你可以有一个类从数据库返回用户并与域用户进行比较
  • 完美!谢谢它的工作原理。现在下一步是从数据库中读取角色并将其写入用户身份角色......我明天会试试这个。

标签: sql-server authentication asp.net-core-mvc asp.net-identity asp.net-core-2.0


【解决方案1】:

Dosc Microsoft 有很多关于 ASP.NET Core 身份验证的帖子。以下是一些帮助您入门的链接:

ASP.NET Core Authentication

ASP.NET Core Authentication Identity

还有更多。

【讨论】:

  • 谢谢,我不再需要答案了,因为我找到了我的解决方案并在此处进行了描述:stackoverflow.com/a/50017259/9641435 和此处:github.com/aspnet/Identity/issues/1768 - 但是您的回答绝对不具体,也无济于事与提出的任何问题。所以我认为它不会帮助其他人在未来遇到同样的问题。
  • 好吧,你可能真的需要那些 Authorize 在你的控制器中
猜你喜欢
  • 2018-06-10
  • 2018-02-12
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多