Asp.net core 如何使用AD/LDAP管理ASP.NET核心中的用户?我是否将用户存储在数据库中?

Asp.net core 如何使用AD/LDAP管理ASP.NET核心中的用户?我是否将用户存储在数据库中?,asp.net-core,active-directory,ldap,asp.net-identity,Asp.net Core,Active Directory,Ldap,Asp.net Identity,我正在编写一个内部应用程序,其中所有用户都是广告的一部分。我有以下步骤来实现这一点。这是正确的吗 创建操作筛选器以获取对网站的所有HTTP请求,并签入它们处于所需的特定AD角色(var isUserInRole=User.IsInRole(“M2 ITU PWApplicationDevelopers”)) 如果用户不在任何应用程序角色中,请将用户发送到错误页面 如果用户在应用程序角色中,那么将用户添加到SQL DB并链接到DB中的角色表,这样现在我就可以在DB中使用用户/角色数据以及其他数据

我正在编写一个内部应用程序,其中所有用户都是广告的一部分。我有以下步骤来实现这一点。这是正确的吗

  • 创建操作筛选器以获取对网站的所有HTTP请求,并签入它们处于所需的特定AD角色(var isUserInRole=User.IsInRole(“M2 ITU PWApplicationDevelopers”))

  • 如果用户不在任何应用程序角色中,请将用户发送到错误页面

  • 如果用户在应用程序角色中,那么将用户添加到SQL DB并链接到DB中的角色表,这样现在我就可以在DB中使用用户/角色数据以及其他数据

  • 当用户再次访问时,在LDAP之前先检查数据库

  • 如何设置cookie或其他东西,使每个请求在经过身份验证后都不需要通过流程

    努力理解基本知识。。也许我把这一切都搞错了

    使用。您的应用程序需要在IIS之后才能在ASP.NET Core 2.2及更低版本中运行,但启动ASP.NET Core 3.0时,您可以使用

    如果这样做,您可以跳过步骤3和4。当一个人通过Windows身份验证进行身份验证时,应用程序将获得一个登录令牌,该令牌包含该帐户所属的所有安全组。因此,
    User.IsInRole
    相当快。没有必要将这些信息存储在您自己的数据库中

    你也不必担心饼干

    Windows身份验证的附加好处是,它可以支持无缝登录:如果您的站点位于Internet选项中的受信任站点中,则IE和Chrome将自动发送当前登录到Windows的用户的凭据。用户不必键入他们的凭据

    Firefox使用自己的
    网络。协商授权委托URI设置以达到相同目的。

    使用。您的应用程序需要在IIS之后才能在ASP.NET Core 2.2及更低版本中运行,但启动ASP.NET Core 3.0时,您可以使用

    如果这样做,您可以跳过步骤3和4。当一个人通过Windows身份验证进行身份验证时,应用程序将获得一个登录令牌,该令牌包含该帐户所属的所有安全组。因此,
    User.IsInRole
    相当快。没有必要将这些信息存储在您自己的数据库中

    你也不必担心饼干

    Windows身份验证的附加好处是,它可以支持无缝登录:如果您的站点位于Internet选项中的受信任站点中,则IE和Chrome将自动发送当前登录到Windows的用户的凭据。用户不必键入他们的凭据


    Firefox使用自己的
    网络。为同样的目的协商授权委托URI设置。

    很好。但我的程序允许用户创建报告。。。因此,在报告表中有一个CREATEBY字段。。由于数据不在数据库中,我在这里存储什么?如果用户不在数据库中,如何将其添加到各种查询中。。我习惯于拥有一个用户表,因此这是我的观点,我来自
    user.Identity.Name
    将为您提供来自AD的用户名。好的,这就是我传递给服务以查询数据的内容。。将有一个字符串“UserName”,这将是ADName。明白了,汤不错。但我的程序允许用户创建报告。。。因此,在报告表中有一个CREATEBY字段。。由于数据不在数据库中,我在这里存储什么?如果用户不在数据库中,如何将其添加到各种查询中。。我习惯于拥有一个用户表,因此这是我的观点,我来自
    user.Identity.Name
    将为您提供来自AD的用户名。好的,这就是我传递给服务以查询数据的内容。。将有一个字符串“UserName”,这将是ADName。知道了。