【发布时间】:2020-08-09 07:48:05
【问题描述】:
我是 ASP.NET Core 3.1 Razor Pages 的新手,我有一个问题。 希望你能帮我更多 :)。
我想要的是一个具有 Windows AD 安全性的应用程序。 我想做什么的描述:
- 客户需要使用他/她的 AD 帐户登录。
- 如果输入了有效的 AD 帐户/密码组合,用户将获得授权。
- 用户有权查看/调整特定页面,如果在特定组中,假设是否在运行应用程序的服务器的管理员组中。
我遇到的问题如下。 在 LaunchSettings.json 我放置了这段代码:
"windowsAuthentication": true,
"anonymousAuthentication": false,
"iisExpress": {
"applicationUrl": "http://localhost:65385",
"sslPort": 44356
}
}
然后在 Startup.cs 我添加了 AddAuthentication。
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddRazorPages();
}
在配置部分:
app.UseAuthentication();
app.UseAuthorization();
最后,我在我的 Pages 文件夹中创建了一个名为 Admin 的单独文件夹。 我想将此文件夹限制为仅管理员组。 所以我将 Authorize 添加到 Index1Model。
[Authorize(Roles = "Administrators")]
public class Index1Model : PageModel
{
public void OnGet()
{
}
}
使用 IIS Express 在本地启动此代码并单击受保护的页面,我确实收到以下错误:
Access denied
我认为这可能与模仿有关。但是当我在 IIS 中启用它时,我就无法再打开应用程序了。显示在我的程序右上角的用户属于管理员组,因此应该允许查看该页面。 我在看什么?感谢您帮助我!
【问题讨论】:
-
您是否在 IIS 中启用了 Windows 身份验证?
-
@YankTHEcode,是的,基本身份验证和 Windows 身份验证都已启用。
标签: c# asp.net asp.net-core razor-pages