MasterPage 上的 ASP.Net MVC 身份验证检查
我想在我的 MasterPage 中添加对 Request.IsAuthenticated 的检查(COntroller?有这样的事情吗??)。这可能吗?如果检查失败,我想重定向到 NoAccess.aspx 页面。
I would like to add a check for Request.IsAuthenticated into my MasterPage (COntroller? Is there such a thing??). Is this possible? I want to redirect to a NoAccess.aspx page if the check fails.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MVC 的概念与 Web 表单不同,在 Web 表单中您可以在 master 上执行通用逻辑。
在 ASP.NET MVC 母版页中必须仅包含 UI 相关设置。
在 MVC 中,您使用操作过滤器:用
[Authorize]
装饰您的操作。The concept on MVC is different to web forms where you would do common logic on the master.
In ASP.NET MVC master page must only contain UI related setup.
In MVC you use Action filters: decorate your actions with
[Authorize]
.您是否使用默认的 MVC 项目模板创建了项目?它已经拥有您正在寻找的一切。如果您现在不继续创建一个。
一旦你进入那里,你就会注意到 @Aliostad 提到的
[Authorize]
属性。这些是在控制器级别进行验证的自定义属性。查看有关 Web 表单安全性的 MVC 教程,了解有关其如何结合在一起的更详细的说明:http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs
Did you create a project using the default MVC project template? It has everything you're looking for already in there. If you didn't go ahead and create one now.
Once you're in there you'll notice the
[Authorize]
attributes as @Aliostad mentioned. These are custom attributes that do the validation on the controller level.Check out the MVC tutorial on web form security for a more detailed run-down on how it all meshes together: http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs
您可以通过创建自己的自定义身份验证属性来实现此目的。
在您的项目中创建一个新的过滤器文件夹并添加以下类
,然后使用授权属性装饰您的主控制器和其他所需的控制器
这会将未经身份验证的用户重定向到您的 noaccess.aspx 页面
You can achieve this by creating your own custom authentication attribute.
Create a new filter folder within your project and add the following class
then decorate your home controller and other required controllers with the Authorization Attribute
This will redirect an unathenticated user to your noaccess.aspx page