asp.net - 显示不同身份验证消息的 Web 应用和 MVC 应用
问题描述
我正在尝试使用 Azure AD 对我的应用程序进行身份验证。该应用程序已在 Azure AD 中注册。旧应用程序是 ASP.NET Web 应用程序。最初,我遇到了让它工作的问题。我找到了一个 MVC 应用程序示例并创建了一个新的示例应用程序。
当新的应用程序。打开并点击 Azure AD,它显示消息: https ://i.stack.imgur.com/9jhqE.png
我将旧应用程序中的 Startup.cs 替换为 Owin Startup.cs 并添加了相同的代码。当这个应用程序点击 Azure AD 时,它直接显示“访问被拒绝”错误。
我想知道管理员同意是否应该解决这两个问题或旧版应用程序需要其他任何东西。
解决方案
如果我能更准确地回答您的问题,我尝试在本地使用 Asp .net mvc 进行复制,并使用 Azure AD 创建了演示应用程序,这使我可以成功登录。
以下是我遵循的步骤
登录 AzurePortal > Azure Active Directory > 创建新租户 > 切换到您创建的租户。
从租户转到 > 管理 > 应用注册 > 新注册。
并在注册期间确保根据您的应用程序提供本地主机。
注册后转到 > 概述 > 检查并复制所有凭据,例如客户端 ID、租户 ID、重定向 URL,如下所示:
您只需从管理中单击身份验证选项,然后向下滚动以获取 ID TOKEN 复选框。并使用单租户标记为是并保存。
成功完成天蓝色广告租户创建、应用注册和身份验证后。
从文件夹根目录的 Visual Studio 项目下载以下内容nuget Packages
:Microsoft.AspNetCore.authentication.AzureAD & Microsoft。身份。网络
然后到startup.cs
配置服务下的文件和更新如下:
public void ConfigureServices(IServiceCollection services)
{
**services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(Configuration.GetSection(****"AzureAd"****));**
services.AddControllersWithViews();
}
单击appsetting.json
文件并根据之前在 Portal>Azure AD> App register>overview 中创建的凭据更新以下代码。
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": " ******.onmicrosoft.com",
"ClientId": "*****",
"TenantId": "*****",
"CallbackPath": "/signin-oidc"
},
并在 startup.cs 文件中更新身份验证,如下所示:
**app.UseAuthentication();**
app.UseAuthorization();
在 homecontroler.cs 文件中添加一个名为[Authorize]的属性:
之后运行应用程序,该应用程序将重定向到具有访问权限的 MS 登录页面。
更多详情请参考以下链接:
推荐阅读
- hibernate - 如何将 sql 转换为 jpa 条件查询以获取 hibernate 或 eclipse 链接
- sql-server - 在存储过程中添加列名作为参数不起作用
- ios - “removeFromSuperview”永远不会在 UIApplication 上工作?
- mysql - 根据来自不同表的匹配列查询以填充 ID 列
- security - 如何构建基于插件的安全(受限生态系统)架构(在 Kotlin 中)
- java - 如何获得 DST 差距和重叠?
- python - (替代解决方案)Anaconda 安装问题 - 无法创建 Anaconda 菜单
- angular - 带有 array.indexOf 的 Angular ngIf 只能工作一次
- domain-driven-design - 在由域驱动设计和多语言持久性驱动的分布式架构中处理复杂的读取模型
- php - 我正在尝试将条带集成到我的网站中,但我遇到了一些问题