asp.net - 如何将 Active Directory 用于 ASP.Net 5 (MVC6) Intranet 应用程序

标签 asp.net active-directory ldap asp.net-core-mvc

我正在开发一个 Intranet 应用程序,并希望使用现有组织 Active Directory 进行用户身份验证和基于策略的角色授权。

有人可以指出我正确的方向吗?我有点困惑(实际上很困惑)。

谢谢

最佳答案

每个身份验证和自动化资源在 http://docs.asp.net/en/latest/security/index.html

首先启动一个新的 ASP.Net Web 应用程序项目,选择 Web 应用程序模板,然后在右侧 Pane 中按“更改身份验证”按钮并选择“Windows 身份验证”。

您现在可以使用 [Authorize]从 RC2 开始,在检查基本身份验证与事件目录的类或方法上,您可以简单地使用组名 ala [Authorize(Roles=@"DOMAIN\GROUP")]
现在已经过时且繁琐的替代方案(仍然有效):

如果你看 User.Claims您可以看到每个用户组都存在 groupid 键。以此为基础,您可以执行类似 [Authorize(Policy="FOOBAR")] 的操作并在您的 Startup.ConfigureServices 中定义它方法通过

        services.AddAuthorization(
            o => o.AddPolicy(
                "FOOBAR",
                p => p.RequireClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
                    "ENTER GROUP SID")
                ));

请注意,RequireClaim 的第二个参数是一个字符串数组,以允许多个组。

另请注意通过此命令行魔术 dsquery group -name “ENTER GROUP NAME” | dsget group -sid 找出组 ID

关于asp.net - 如何将 Active Directory 用于 ASP.Net 5 (MVC6) Intranet 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538724/

相关文章:

c# - MVC/ Razor : textbox should show NO value after postback

ASP.NET 应用程序使用大量内存 - 泄漏?

c# - 获取 WinNT 组的成员列表

java - Tomcat Windows 身份验证 : JNDIRealm doesn't use SPNEGO delegated credentials

powershell - 使用 powershell 在 AD 中获取组织职位

linux - MediaWiki 无法让 LDAP 身份验证工作

asp.net - 无法加载文件或程序集 'Microsoft.Exchange.WebServices, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

asp.net - 使 GridView 具有静态宽度并强制水平滚动

python - cx_卡住/ldap : ImportError: DLL Load Failed %1 is not a valid Win32 application

python - 如何使用 django-python3-ldap 从 Active Directory 组在 Django 模型中创建组和权限?