asp.net-mvc - 如何将 Azure Active Directory 身份验证添加到 Razor Pages 应用程序?
问题描述
据我了解,您通过执行 New Project > ASP.NET Core Web Application > [provide app name] > Web Application 在 Visual Studio 2019 中创建 Razor Pages 应用程序
以下教程展示了如何将 Azure Active Directory 身份验证添加到 MVC 应用。我让示例 MVC 应用程序工作。
我将本教程中的所有必要代码复制到了 Razor Pages 应用程序(Program.cs 和 Startup.cs)中,但我没有收到任何身份验证提示。这是否意味着不支持 Razor 页面?还是我做错了什么?
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-aspnet-core-webapp
解决方案
基本上,您需要在代码中遵循 3 件事。
- 对您的 ConfigurationServices 进行更改。
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddRazorPages().AddMvcOptions(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
}
- 应用设置.json
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "<Your Domain>",
"TenantId": "<Your TenantId>",
"ClientId": "<ClientId>",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
- 确保您在 Startup.cs 中的 Configure 方法中有以下代码
app.UseAuthentication();
app.UseAuthorization();
或者,如果您使用以下命令创建 dotnet 核心应用程序,您将完成所有工作并为您准备好。
dotnet new razor --auth SingleOrg --client-id <applicationId> --tenant-id <domaintenantid> --domain <domain>
推荐阅读
- c# - 如何获取内容使用 HtmlAgilityPack - C#
- java - 语法 Antlr Java - 识别“立即执行”
- robotframework - 机器人框架:如何排序
- javascript - 触发/打开链接而不在 HTML 中打开它
- rust - 将可变 Arc 引用传递给超 service_fn 处理程序的问题
- javascript - Array.prototype.concat 的行为不像预期的那样
- vpn - OpenVPN 客户端连接到服务器,但没有互联网。Ubuntu 18.04.2
- java - 无法在 Servlet 中的 If 语句内重定向
- c# - 如何通过 Selenium C# 使用文本查找元素
- csv - 多个 JSON 有效负载到 CSV 文件