我似乎无法弄清楚如何在认证用户后返回上一页。我试着返回RedirectToLocal(returnUrl),但总是把用户带回到主页索引页面。当我使用return Redirect(returnUrl)时,它会重新载入前一页。但是,前一页的ViewBag中的对象在该点处为空。我只想让用户返回到上一页,保留状态,将所有输入的数据保留在购物车结账页面上。在认证用户后重定向用户返回上一页
1
A
回答
0
你如何将他们重定向到登录页面 - 手动或使用属性?将[Authorize]
添加到控制器类是最简单的方法,默认情况下按预期工作。例如
[Authorize] public class TestController : Controller
对于你的情况,你可能要放置在授权上的操作属性,而不是整个控制器
[Authorize]
public ActionResult ConfirmShoppingCart()
这种方法的好处是进一步customization
一个可能的最后手段是手动放置一个条件的视图呈现您的“继续”按钮(或任何你想触发认证)。
E.g.
@if (Request.IsAuthenticated) {
//normal proceed'
} else {
@Html.ActionLink("Proceed", "Login", "Account", new { @returnUrl = Url.Action("ViewCart", "ShoppingCart")}, new { })
}
0
使用后::
[HttpPost]
public ActionResult Login(User model, string returnUrl)
{
// Lets first check if the Model is valid or not
if (ModelState.IsValid)
{
using (DbEntities entities = new DbEntities())
{
string username = model.UserID;
string password = model.Password;
var UserAuth = db.Users.Where(x => x.UserID == model.UserID && x.Password == model.Password).FirstOrDefault();
// Now if our password was enctypted or hashed we would have done the
// same operation on the user entered password here, But for now
// since the password is in plain text lets just authenticate directly
bool userValid = entities.Users.Any(user => user.UserID == username && user.Password == password);
var usr = entities.Users.FirstOrDefault(x => x.UserID == username && x.Password == password);
if (userValid)
{
//System.Web.HttpContext.Current.Session["_SessionCompany"] = usr.DefaultCompanyID;
FormsAuthentication.SetAuthCookie(username, false);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
//return RedirectToAction("Index", "Dossier");
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
+0
当我使用重定向(returnUrl)时,它“重新加载”前一页,用户输入的所有数据都是空白的。我想要做一些事情,比如在javascript中回顾历史。那可能吗? – user2974739
+0
使用断点来检查什么是'returnUrl'值 – Rahul
相关问题
- 1. 用户认证后重定向回页面标签?
- 2. symfony认证后重定向用户
- 3. Django:重定向用户两页返回
- 4. 设计:认证用户后重定向到上一页? (request.referer结果循环)
- 5. 如何在认证后重定向用户
- 6. 经过Linkedin认证。将用户重定向回应用程序
- 7. 重定向后验证用户
- 8. cakephp - 在“Missing method”错误上重定向未认证的用户
- 9. CakePHP:如果用户被认证,将用户从/重定向到
- 10. Xamarin.Auth PageRenderer在用户认证之后重定向到PCL中的页面
- 11. 用户登录后页面重定向
- 12. Zend认证和登录后重定向用户
- 13. 登录后将用户重定向到上一页
- 14. 将返回的用户重定向到特定页面
- 15. 如何在用户登录后重定向回用户期望访问页面?
- 16. 将用户重定向到前一页
- 17. PHP重定向用户返回登录页面
- 18. 用户确认帐户后覆盖重定向路径 - 设计
- 19. 在IdP认证/ SP重定向之前向用户帐户追加文本
- 20. 在用户确认时使用jquery重定向到新页面
- 21. 用户单击取消后重定向回网页
- 22. Spring Security:SecurityContextHolder.getContext()。在用户注册用户并重定向到登录页面后,getAuthentication()返回NULL
- 23. FB.login认证后重定向
- 24. 如何将用户重定向到一个返回的URL python
- 25. 将用户重定向到我的分页上的最后一页
- 26. 如何在没有重定向的OAuthCallBack后返回客户端
- 27. ZK - 将用户重定向回前一页
- 28. SpecialFolder.ApplicationData返回默认用户
- 29. 基于原始认证在会话超时后强制重定向用户
- 30. 登录后转发用户返回上一页
我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –