我正在编写ASP.NET MVC应用程序
当用户首次登录时,应用程序应显示一个页面以接受使用条款。
如果用户不接受这些条款,他将被重定向到登录页面。如果他接受条款,那么他可以继续使用我的应用程序
应用程序中我可以检查此条件以调用ReddirectToAction的最佳位置在哪里?
答案 0 :(得分:1)
我会在User对象上存储'Accepted T& C'标志。
然后我会检索登录的用户信息,检查标志,并在Controller Action中正确地重定向。
答案 1 :(得分:0)
有很多样本应用程序,其中包含身份验证/授权示例。除非有更好的建议,否则我会看看他们如何处理对受限页面的访问(即,如果未经过身份验证,则重定向到登录,如果未经授权,则重定向到错误,否则显示页面)。然后,如果他们没有接受您的条款,您可以使用相同的技术进行重定向。
答案 2 :(得分:0)
如果你有一个所有其他控制器继承的“BaseController”类型类,则覆盖OnActionExecuting方法并在那里进行检查。
ETA - 显然,提供术语页面的控制器不会有这种行为,或者你最终会进入重定向循环,所以你需要有一个“BaseLoggedInController”或者所有控制器除了提出术语/登录页面的一个将继承自。
答案 3 :(得分:0)
实现AuthorizeAttribute,它检查在用户上设置的接受标志,并在适当时重定向。如果未设置,则将用户发送到使用条款页面。如果他否认,他将被重定向到“你应该接受页面”。
实现一个Controller基类,它是一个AuthorizeFilter。在OnAuthorization方法中实现检查。