如何检查用户是否是组成员

2023-12-11

我的目标是检查用户是否是特定活动目录组的成员。

In .net mvc我在我的服务中使用了这段代码

HttpContext.Current.Request.LogonUserIdentity.Groups
                    .Any(x => x.Translate(typeof(NTAccount)).Value == "some role"

效果很好。 在.net核心mvc 2.1.2 i pass IHttpContextAccessor进入服务构造函数并尝试使用以下

_httpAccessor.HttpContext.User.Identity.LogonUserIdentity.Groups

但有一个问题,因为Identity不包含LogonUserIdentity。我尝试找到任何解决方案,但没有成功,如何获取用户组列表或检查用户是否是特定组的成员?


除了使用内置功能按“角色”检查权限外,如果您想按特定AD组检查权限,还可以使用以下代码:

 public static class Security
{
    public static bool IsInGroup(this ClaimsPrincipal User, string GroupName)
    {
        var groups = new List<string>();

        var wi = (WindowsIdentity)User.Identity;
        if (wi.Groups != null)
        {
            foreach (var group in wi.Groups)
            {
                try
                {
                    groups.Add(group.Translate(typeof(NTAccount)).ToString());
                }
                catch (Exception)
                {
                    // ignored
                }
            }
            return groups.Contains(GroupName);
        }
        return false;
    }
}

并用作:

 if (User.IsInGroup("GroupName"))
 {

 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查用户是否是组成员 的相关文章

  • Asp.Net Core 将 ViewComponent 渲染为变量

    我正在尝试渲染ViewComponentASP NET Core 3 0 页面 中服务中的字符串 我找到了两个部分解决方案来解决我的问题 但两者都适用于 3 0 之前的较旧版本 并且存在一些我不知道如何解决的问题 第一个取自GitHub要点
  • 读取 ASP.NET 中分块传输编码的 http 请求的正文

    J2ME 客户端正在使用分块传输编码发送 HTTP POST 请求 当 ASP NET 在 IIS6 和 WebDev exe server 中 尝试读取请求时 它将 Content Length 设置为 0 我想这没问题 因为加载请求时
  • 删除或替换 RouteTable 中的现有路由

    我得到了一个 ASP NET MVC 2 0 Preview 1 应用程序 并开始创建一些包含自己的路由的区域 我希望有一种方法可以在主项目中覆盖这些路线 我当然不能添加同名的新路线 我可以看到 RouteTable Routes Remo
  • 实体框架中的多态性

    具体类 BankAccount and CreditCard 在控制器上不可见 我被这个问题困扰了 我正在使用该网站的示例 http weblogs asp net manavi archive 2010 12 28 inheritance
  • Microsoft MVC:手动触发表单验证

    有谁知道是否有办法手动触发 Net MVC 应用程序中的客户端表单验证 我想做以下事情 我已经查看了 MicrosoftMvcValidation js 中的代码 但没有找到可以在表单上调用的方法 我认为您正在寻找的验证可以在这里找到 ht
  • Asp.net Core 授权重定向未发生

    我正在尝试在 Asp net core 应用程序 dnx 4 5 中使用 cookie 身份验证 请注意 因为我有自定义身份验证机制 半径 所以我没有使用核心身份验证提供的开箱即用机制 当用户未经身份验证时 我想重定向到登录页面 我在 St
  • MVC 5 Razor 活动导航选项卡

    我一直在尝试突出显示我的项目中的活动导航选项卡 我的任务是更新旧网站而不更改为引导程序 这是我的经验所在 我找到了一个包含我需要的大部分内容的示例 目前 唯一具有 选定类别 的选项卡是 主页 选项卡 当我单击另一个选项卡时 主页 选项卡不再
  • IE8 中的 Javascript 消息超出堆栈空间

    我正在使用 Breeze 1 4 1 Internet Explorer 8 和 ASP NET MVC 4 Web API 我在查询时收到以下消息 查询失败 localhost port breeze Data Metadata 元数据导
  • NServiceBus 3.2 示例问题

    我正在尝试运行 AsyncPages 的 NServiceBus 示例 看起来很简单 从 NServiceBus com 下载最新版本 执行bat文件来安装先决条件 打开解决方案 Press F5 在文本框中输入数字 当我这样做时 我遇到了
  • 在 LINQ 中,如何对来自 .Include() 的数据执行 .OrderBy() ?

    这就是我正在做的 List
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route
  • 渲染以 Markdown 形式上传并在服务器端转换为 Html 的 Html 是否安全?

    我有一个网络表单 允许用户以 Markdown 形式上传文本 Markdown 在服务器上转换为 Html 使用 Markdig 并存储 当显示用户上传的转换后的 Html 时 我应该 Html Encode 内容 该项目采用 c MVC
  • 在字段更改时显示 asp-validation-summary

    使用 ASP NET Core 不显眼的客户端验证 我想在字段更改时显示验证摘要 不仅仅是在表单提交上 The div div 元素在表单提交时显示每个字段的相关错误消息 但在字段修改时 且修改状态无效 则不显示 这是我的示例代码 我的型号
  • ASP.NET MVC 阻止用户直接访问 URL

    因此 我在 MVC 中创建了一个简单的 hello world 作为概念证明 索引视图列出了一些组成的记录 后面是典型的 编辑 详细信息 和 删除 操作链接 但是 根据哪个 AD 组拥有该记录 我不会呈现其中一些选项 举例来说 假设我要提取
  • 子文件夹中忽略 ASP.NET web.config 授权设置

    我正在使用 asp net mvc 2 和 vs 2008 我正在尝试制作具有表单授权的网站 当我尝试限制对某些页面的访问时 我正在使用 asp net 管理工具 例如 我创建规则来拒绝匿名用户访问整个网站 正如预期的那样 管理工具在根 w
  • 在 ASP.NET MVC 中使用 bootstrap 创建模式

    我在 ASP NET MVC 项目上使用 NET Framework 4 5 Bootstrap v3 3 6 我想做的是创建一个模态表单 我尝试了以下方法 在主布局中创建了一个模态容器 div class modal fade style
  • HTML 帮助器类方法不起作用

    我被 Steven Sanderson Adum Freeman Pro ASP Net MVC 3 的参考书困住了 我已经读到了第 185 页 其中使用 HTML 帮助程序返回链接中的页面编号 我在这个网站上找到了帮助解决我与这本参考书有
  • 如何仅更新实体框架中的特定字段(核心)

    我正在编写一个应用程序 它从外部 API 提取数据并使用实体框架将其存储到我的 SQL Server 数据库中 我每天从这个 API 中提取数据 因此如果一行已经存在 记录将被更新 否则将创建一条新记录 这是通过检查 Id 来完成的 现在我
  • 在 ASP.NET MVC 3 应用程序中设置 ashx 处理程序的自动化规则

    我正在 MVC 3 应用程序中实现 javascript 文件上传功能 因此我需要使用 Http 处理程序 ashx 来允许大文件上传 现在我需要以某种方式禁止未经身份验证的用户调用处理程序的方法 如果我有一个控制器 我只需对其应用 Aut
  • 如何让“dnu”命令在 OS X 上运行?

    刚刚下载并安装视觉工作室代码 https code visualstudio com 在 OS X 10 10 3 上 我已经设法部分遵循ASP NET 5 安装说明 https code visualstudio com docs ASP

随机推荐