如何解决ASP.NET MVC - 是否可以在多个身份验证系统之间进行选择
我们有一个 ASP.NET MVC + Angular SPA 存储在 Azure 中的位置(相同的 AppService)。 实际上,当我们转到 AppService URL(例如 myapp.customazure.com)时,它会触发 WsFederation 身份验证重定向到合作伙伴网站(外部提供商)。登录成功后,我们的 Home.cshtml 可以运行,这通常是我们的 Angular(我们在那里渲染 Angular javascript 文件)。
我们的 Home.cshtml 看起来像这样:
<!doctype html>
<html>
<head>
<Meta charset="utf-8">
<title>MyApp.Web</title>
<base href="/">
<Meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<Meta HTTP-EQUIV="Expires" CONTENT="-1">
<Meta name="viewport" content="width=device-width,initial-scale=1">
<link type="image/x-icon" href="favicon.ico" rel="icon" />
<link type="image/x-icon" href="favicon.ico" rel="shortcut icon" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
@Styles.Render("~/styles")
</head>
<body>
<app-root><div class="spinner"></div></app-root>
@Scripts.Render("~/runtime")
@Scripts.Render("~/polyfills")
@Scripts.Render("~/scripts")
@Scripts.Render("~/main")
</body>
</html>
WsFederation 配置存在于 Web.config 中,例如:
<location path="FederationMetadata">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
当然还有
<!-- Replaced during Azure DevOps Release-->
<system.webServer>
</system.webServer>
<!-- Replaced during Azure DevOps Release-->
<system.identityModel>
</system.identityModel>
<!-- Replaced during Azure DevOps Release-->
<system.identityModel.services>
</system.identityModel.services>
我们想要实现的是添加使用其他选项 (Azure AD B2C) 进行身份验证的可能性。然后最后会有一个新视图 .cshtml 提供两个按钮让用户在两种身份验证方法之间进行选择:
- 像往常一样与 WsFederation 联系
- 连接 Azure AD B2C(新选项)
实现这种事情可行吗?再次感谢您的帮助!
解决方法
是的,这是可能的。如您所说,首页将有两个按钮用于 WsFederation 和 B2C。
现在,您必须根据用户按下的按钮将用户重定向到您的控制器操作方法。
对于MVC 中的 B2C 设置,您可以参考Quickstart: Set up sign in for an ASP.NET application using Azure Active Directory B2C。
此外,请查看 Integrating a web app with Azure AD using WS-Federation 是否符合您的要求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。