ASP.NET MVC 和 ASP.NET 成员资格提供程序 - 全局处理身份验证
我正在使用 ASP.NET MVC 构建一个小型应用程序,并使用 ASP.NET 会员资格提供程序来处理用户。将其连接到基本 MVC 模板的登录页面。
检查全局有效身份验证的最佳实践是什么?如果用户未在我的所有页面上进行身份验证,我基本上想重定向到首页或登录页面。
-安德斯
I'm building a small app with ASP.NET MVC and I'm using the ASP.NET membership provider for handling users. Hooked this up to the login page of the basic MVC template.
What is the best practice for checking a valid authentication globaly? I basically want to redirect to the front page or the login page if the user's not authenticated on all my pages.
-anders
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 MVC Preview 4 左右的时代,我们的做法是创建一个新的“BaseController”类,然后所有其他控制器都继承该类。这个 BaseController 类使用 Authorize 属性
然后我们的其余控制器继承自这个控制器
现在已经几个月没有使用 MVC 了,所以我不能说这是否仍然适用,所以请谨慎行事......
The way we did it, back in the days of MVC Preview 4 or so, was to create a new "BaseController" class, which every other controller then inherits from. This BaseController class uses the Authorize attribute
The rest of our controllers then inherited from this one
Haven't had to work with MVC for a few months now, so I can't say if this is still applicable, so proceed with caution...
您应该只注释您想要使用 [Authorize] 进行身份验证的任何操作,并且可以选择使用一些必需的角色:
如果您愿意,这包括您的主页操作。未经授权的尝试将始终被重定向到登录页面。
You should just annotate any action you want to authenticate with [Authorize], and optionally with some required roles:
This includes your home page action, if you wish. Unauthorized attempts will be always redirected to the login page.
这可能有点过于复杂,但另一种方法可能是在管道中放置一个自定义 HTTP 模块,以便在用户未经身份验证时重定向请求。
this may be slightly over complicated, but another approach could be to put a custom HTTP Module in the pipeline to redirect the request if the user isn't authenticated.