Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于示例项目中AccountController和_LoginPartial的问题_C#_Asp.net Mvc_Azure Ad B2c - Fatal编程技术网

C# 关于示例项目中AccountController和_LoginPartial的问题

C# 关于示例项目中AccountController和_LoginPartial的问题,c#,asp.net-mvc,azure-ad-b2c,C#,Asp.net Mvc,Azure Ad B2c,我目前正在熟悉mvc框架和Azure B2C登录/凭据。目标是将示例项目中提供的一些逻辑实现到现有项目中。在详细说明我在自己的项目中遇到的问题之前,我无法弄清楚以下几点: 提供的示例应用程序(参见)包含一个类AuthController.cs,该类提供用于登录/注销等的逻辑。在使用局部视图时,似乎会调用AuthController中的方法,例如 @if (Request.IsAuthenticated) else { <ul class="nav navbar-nav navbar

我目前正在熟悉mvc框架和Azure B2C登录/凭据。目标是将示例项目中提供的一些逻辑实现到现有项目中。在详细说明我在自己的项目中遇到的问题之前,我无法弄清楚以下几点:

提供的示例应用程序(参见)包含一个类AuthController.cs,该类提供用于登录/注销等的逻辑。在使用局部视图时,似乎会调用AuthController中的方法,例如

@if (Request.IsAuthenticated)
else
{
    <ul class="nav navbar-nav navbar-right">
        <li>@Html.ActionLink("Sign up / Sign in", "SignUpSignIn", "Account", routeValues: null, htmlAttributes: new { id = "signUpSignInLink" })</li>
    </ul>
}
现在,调试时控制器似乎不可访问,因此我无法确定参数
redirectUrl
是从何处传递的。这背后的原因是我想在已经存在的控制器类中实现
SignUpSignIn
方法。 分部类和控制器之间的关系是什么?我从哪里获得此
重定向URL
。如果我的问题看起来微不足道,我很抱歉,但我目前正在从经典ASP.NET过渡到MVC。 提前感谢您的解释

亲切的问候(万圣节快乐)


Sas

您需要在应用的AAD注册中将承载应用的主域名配置为回复URL,并在重定向到AAD时将其作为重定向uri传递,以允许用户登录

AAD将仅将访问令牌重定向到在AAD中的应用程序注册中指定为回复URL的URL

因此,在本例中,重定向URL已设置为“”。控制器从web.config文件获取重定向URL值


它必须与Azure AD中配置的回复URL匹配。

重定向URL是从Azuratanks返回以获取您的评论后将被重定向的URL。那么,我是否正确地假设所讨论的重定向URL对应于我在Azure中设置的回复URL。我想这就是在web.config和Global.cs类中指定重定向URL的原因。那么控制器,在这种情况下,是从web.config和Global.cs中提取信息,还是自动处理传入的url?当你打电话给Azuratanks时,你将设置的重定向url是澄清这一问题的mil。我没有完全理解你回复中第一段的要点。这就是我的第{0}/{1}/v2.0/.well-known/openid配置“/>“/>…我仍然不知道错误是否在我的web.config或Azure设置中,因为在SignupSignin方法中,重定向的值似乎为null,最后设置为“/”,这导致应用程序返回404和一些其他错误。几乎忘记了另一件困扰我的事情,在检查示例项目以在现有应用程序中使用时。在使用调试器时,似乎无法访问SignUpSignIn方法。我想看看在这个特殊的时刻,重定向URL里面是什么。为什么调试器没有被触发?但是,当在新项目中创建新类AccountController.cs并将其链接到SignIn页面时,我可以使用调试器访问该方法,显示redirectUrl为空。
public void SignUpSignIn(string redirectUrl)
        {
            redirectUrl = redirectUrl ?? "/";

            // Use the default policy to process the sign up / sign in flow
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = redirectUrl });
            return;
        }