【问题标题】:configuring windows AD authentication in .Net Core 2.x MVC app在 .Net Core 2.x MVC 应用程序中配置 Windows AD 身份验证
【发布时间】:2019-05-03 17:41:30
【问题描述】:

我创建了一个 .Net Core 2.2 MVC Web 应用(实体框架和 Razor 页面)。

该应用托管在使用 IIS 的 Windows 2016 Server 上,属于我们的 Windows AD 域。

应用程序在不使用身份验证或匿名身份验证的情况下运行良好。

但是现在,我想为其中一个控制器启用安全性,以便登录到我们域中其工作站的 AD 用户可以访问它。

所以我遵循了这个教程:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-2.2&tabs=visual-studio#server-side-configuration-with-the-iis-manager

我将我的 Startup 类设置为在 ConfigureServices 中包含所需的条目:

Startup.cs:

using Microsoft.AspNetCore.Server.IISIntegration;

public void ConfigureServices(IServiceCollection services)
{
    //...
    services.AddAuthentication(IISDefaults.AuthenticationScheme);
    //...
}

这是具有我想要锁定的一种方法的控制器:

ResearchController.cs:

using Microsoft.AspNetCore.Authorization;


public class SecuredOptionsController : Controller
{
    [Authorize(Roles = "FrankJ, AliceR")]
    [HttpPost]
    public async Task<IActionResult> AccessSecretData(DateTime? start, DateTime? end)
    {
        return View();
    }
}

我只希望两个域用户能够访问: 我将 FrankJ 和 AliceR AD 域帐户添加到 Windows Server 的用户帐户部分。

当我点击那个控制器时,确实会出现一个登录提示,但是当我输入 FrankJ 或 AliceR 的凭据时,它永远不会起作用。我试过只使用“FrankJ”,也试过“TheDomain/FrankJ”

我错过了什么?

【问题讨论】:

    标签: active-directory asp.net-core-2.0 windows-authentication


    【解决方案1】:

    这是一个简单的解决方法,我设法通过在下面添加这两行来使其正常工作:

    在我的控制器中,我必须像这样添加域:

     [Authorize(Roles = "MyDomain\\DevOps")]
    

    在 Startup.cs 的 Configure 方法中,我不得不添加:

    app.UseAuthentication();
    

    【讨论】:

    • 您是如何在服务器中添加 DevOps 角色的?
    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2021-03-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    相关资源
    最近更新 更多