2013-12-11 37 views
0

我使用的是带有emberjs的Asp.net MVC api。在用户通过身份验证后,我需要将用户重定向到宁静的路径。我正在使用simplemembershiprovider。这是我为登录控制器创建的ember模板。我试着分配returnURL值,但如果我这样做,即使用户已经通过身份验证,页面仍然保留在登录页面。asp.net mvc web api重定向到登录后的宁静url

  if (WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
      { 
       FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
       var redURL = @"http://localhost:20592/#/newlead"; 
       returnUrl = @"http://localhost:20592/#/newlead"; 
       return Json(new { success = true, redirect = returnUrl }); 
      } 

那么如何做一个安静的页面重定向与Web API?

这是_login.cshtml

@model BeastMVC.Models.LoginModel

@using(Html.BeginForm( “JsonLogin”, “帐号”,新的{RETURNURL = ViewBag.ReturnUrl},FormMethod .POST,新{ID = “登录表单”})){ @ Html.AntiForgeryToken()

​​

}

+0

你会显示你的客户端代码,调用登录API控制器?这是正确的想法顺便说一句,是json回到客户端? – Kingpin2k

+0

这是从_login.cshtml直接复制 –

回答

0

的Web API不重通过ajax调用引导浏览器,它可以发回客户端逻辑可用于重定向的数据。在你的情况,我想你只是想做Response.Redirect(redURL);

+0

我试图做到这一点,但是当有一个重定向的URL,由于某种原因,它没有达到HomeController,这是我开始我的余烬框架的地方。如果重定向URL为空,那么它确实到达那里。此外,我将重定向网址设置为外部链接,例如www.google.com,然后它可以正常工作,并将我重定向到该网页。 –