【发布时间】: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