我在Ids3中使用外部提供程序完成了身份验证。 在用户进行身份验证之后,我的MVC主页被加载,这会引导角度应用程序:
@section AppScripts {
@Scripts.Render("~/bundles/Swagger")
@Scripts.Render("~/bundles/DevPortalApp")
}
当用户通过其中一个外部提供商进行身份验证时,我应该以角度重定向到特定页面:
https://myaddress/DevPortalApp/something
问题是,对于常规重定向,我陷入了身份验证循环。如何从家庭控制器重定向到特定的角度页面?
var externalLogin = accessToken.externalLogin;
// Check if its from external
if (externalLogin.Value != null)
{
var isValid = await externalLoginService.ValidateAccessToken(accessToken);
RedirectToAction("~/#/myURLRedirect");
}
答案 0 :(得分:1)
您需要使用here的角度路由器,
您很快就可以使用$state.go('your-new-view')
在app.js文件中创建状态列表 -
$stateProvider
.state('someState', {
url: '/someState',
templateUrl: 'templates/Swagger.html',
controller: 'Swagger'
})
在您的家庭控制器中,您只需使用$state.go('someState')
答案 1 :(得分:0)
将ASP.Net MVC Route与Angular Route集成的方法很少。
我个人喜欢Miguel Castro's approach在ASP.Net MVC中使用*catchall
,然后将其传递给Angular。然后让Angular在客户端处理。
您可以在GitHub分叉我的工作示例代码。
<强> MVC Route 强>
routes.MapRoute(
name: "Users",
url: "users/{*catchall}",
defaults: new { controller = "Users", action = "Index" });
<强> Angular Route 强>
$routeProvider
.when(rootPath + "users", {
template: "<user-list></user-list>",
caseInsensitiveMatch: true
})
.otherwise({ redirectTo: (rootPath + "users") });