嗨,我正在开发Web应用程序。我正在使用Azure活动目录进行登录过程。我正在征得管理员同意。我能够重定向到管理员同意并给出同意。在“管理员同意”页面中,每当我单击“管理员同意”中的“取消”按钮时,我都会重定向到错误页面。 下面是单击管理员同意页面时要重定向的网址。
有人可以帮助我确定问题的根本原因吗?任何帮助,将不胜感激。谢谢。
答案 0 :(得分:1)
您正在从Azure AD 65004获取相关的错误代码,告诉您根本原因是Admin拒绝同意。说明在URL中可见,如果您可以通过在此处查找来确认错误代码的含义-
Sign-in activity report error codes in the Azure Active Directory portal
65004用户拒绝同意访问该应用程序。让用户重试 登录并同意使用该应用
有关显示有意义的错误页面的更新
您没有提到用于编写Web应用程序的内容。无论如何,我尝试了一个具有类似设置的快速ASP.NET MVC Web应用程序,并且很明显地我获得了查询字符串参数中的响应。您所需要做的就是从URL中读取查询字符串(我的示例中有HttpRequest.QueryString集合)并检查是否有错误/错误说明。
这是在MVC控制器中执行此操作的快速示例代码。
public class AdminConsentController : Controller
{
// GET: AdminConsent
public ActionResult Index()
{
if (Request.QueryString.AllKeys.Contains("error")
&& Request.QueryString.AllKeys.Contains("error_description"))
{
string errorDescription = Request.QueryString["error_description"];
if(errorDescription.Contains("AADSTS65005"))
{
//Do something good about it..
}
}
//if no errors, simply return the view
return View();
}
自从您提到Angular 5.。这里是一个快速示例。
看看这个SO post有多种选择
ngOnInit() {
this.param1 = this.route.snapshot.paramMap.get('param1');
this.param2 = this.route.snapshot.paramMap.get('param2');
}
如果您不想使用任何花哨的内容,那么普通的旧window.location应该始终从客户端运行。可能不是推荐的方法。
window.location.href