当我调用AuthorizeAttribute
时,它会发送页面以像它应该那样登录。但是,登录完成后,它会出现在主页/索引中。这是非常烦人的。我如何避免这种情况发生? 由于代码路径永远不会进入我的控制器,因此我无法控制它正在做什么。如何将信息提供给AuthorizeAttribute的过滤器上下文 - HandleUnauthorizedRequest
0
A
回答
0
使用表单身份验证,当您访问需要身份验证的页面时,ASP.NET会将您重定向到登录页面,并将ReturnUrl作为参数传入。
所以,你需要做的就是使用该参数将用户返回到之前的位置。
public ActionResult Login(string username, string pass, string returnUrl)
{
// code to authenticate user here...
if (!string.IsNullOrEmpty(returnUrl))
return Redirect(returnUrl);
return RedirectToAction("Index", "Home");
}
您可能还需要考虑使用FormsAuthentication.RedirectFromLoginPage
Redirects an authenticated user back to the originally requested URL or the default URL.
https://msdn.microsoft.com/en-us/library/ka5ffkce(v=vs.110).aspx
注意调用这个方法也将发布身份验证cookie,你可能已经在做。所以你必须检查你没有这样做两次。
编辑:见https://stackoverflow.com/a/1206728/722778
也许你正在生成您的形式指定控制器的动作(例如Html.BeginForm(“登录”,“帐户”)
在这种情况下,尝试仅此?在你看来:
Html.BeginForm()
或者传递RETURNURL参数yourselve:
Html.BeginForm("LogOn", "Account", new {ReturnUrl = Request.QueryString["ReturnUrl"] })
相关问题
- 1. 如何为上下文信息提供ReadFileEx()的完成例程?
- 2. 给图像提供信息
- 3. 将信息过滤出logstash.conf
- 4. 如何将表单信息提交给我的MySQL服务器?
- 5. Quartz.NET过滤器信息消息
- 6. 角的过滤器提供商:trustedProvider < - 信任< - DashCtrl
- 7. 上下文信息
- 8. 将上下文信息传递给ASP.NET MVC中的视图
- 9. 如何过滤Java JTable中的信息。
- 10. 如何为URLStreamHandler提供上下文?
- 11. 如何通过提供者的guice获得上下文?
- 12. 如何通过ProvidePlugin设置提供模块的上下文?
- 13. 如何将信用卡信息提交给单独的服务器/网站(PCI)
- 14. 使用下拉选择过滤信息
- 15. 通过服务端点将上下文过滤器参数传递给视图
- 16. 如何验证表单并将信息提供给另一个表单
- 17. 查询过滤器中的上下文?
- 18. Drupal的7次上下文过滤器
- 19. 如何将信息从ant传递给sql文件或过程
- 20. bash - 如何过滤java异常信息
- 21. 如何使用PHP从HTML中提取或过滤信息?
- 22. 如何将信息存储在Web服务的上下文中?
- 23. 如何提取与任何OpenID提供者相关的信息?
- 24. AngularJs + RequireJs过滤器未知提供者
- 25. Rails如何通过控制器提供文件下载?
- 26. 如何提供在ContactPicker初步结果的过滤器?
- 27. Spotfire信息链接过滤器
- 28. 如何坚持Powershell提供商驱动器信息?
- 29. 传递上下文信息
- 30. 过滤大量文本信息
问题是登录功能在重定向时从不接收returnUrl,我无法弄清楚如何确保它通过。 –
请看我最后的编辑 – hernant