【发布时间】:2019-02-26 22:09:41
【问题描述】:
我正在尝试使用 Authorize 注释停止路由上的请求,但我无法让它与 Active Directory 一起使用。有人搞定这个了吗?
[HttpGet]
[Authorize(Roles = "DOMAIN\\Group A")]
[Route("/")] // GET: /
public IActionResult Index()
{
return View();
}
注意:我也试过Authorize(Roles = @"DOMAIN\\Group A")
只是提供一些背景知识,我正在运行 Windows,Visual Studio Pro 2015(更新 3)
这是我的 project.json 文件中的一些内容:
"dependencies": {
"Microsoft.AspNetCore.Authorization": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Swashbuckle.SwaggerGen": "6.0.0-beta901",
"Swashbuckle.SwaggerUi": "6.0.0-beta901"
}
【问题讨论】:
-
你是说创建新项目时的“Windows Authentication”选项吗?或者您是否想使用 i.e. 身份通过 LDAP 或类似机制向 AD 注册?后一种不受支持(因此出于安全考虑没有开箱即用的解决方案),因此您必须为它实现自己的提供程序。另外,我相信 Windows 授权只会让您登录,但您不会拥有其中的角色。检查加载的声明上的 IPrincipal/ClaimsPrincipal 以查看其上是否有角色声明
-
@Tseng 我已经获得了身份验证,我需要授权(“你能做 x”,而不是“你是谁”)。此外,用户与服务器位于同一域中。如果我必须为 LDAP 身份验证使用单独的包,你能推荐一个吗?
标签: authorization asp.net-core