[英]ASP.NET MVC Authorization for a dynamic path
我正在使用ASP.NET MVC进行表单身份验证。 在应用程序级别的web.config中,我可以将需要身份验证的路径设置如下:
<location path="subdir1">
<system.web>
<authorization>
<allow users ="?" />
</authorization>
</system.web>
</location>
subdir1是“视图”文件夹中的文件夹名称。 这适用于将网页路由为siteurl.com/subdir1 。
但是,如果我的subdir1在另一个动态创建的路由下,则此设置不起作用。 例如; siteurl.com/dynamic/subdir1不请求身份验证。 动态是在运行时创建的,而web.config在应用程序启动时并不知道它,但它不关心它,我只希望它在有对subdir1路由的访问权时就要求身份验证。
在这种情况下,有什么方法可以设置位置的path属性? 还是您有其他解决方法?
任何帮助,将不胜感激。 卡萨萨卡尔
您可以通过在适当的操作或控制器上使用Authorize
属性来控制授权。
[Authorize]
public ActionResult MyAction()
{
//stuff
}
可以在ASP.NET MVC授权中找到更多信息。
您应该在控制器/操作上使用AuthorizeAttribute ,而不是在web.config文件中为映射到控制器的路由设置访问权限。 如果并非所有动作都需要登录用户,则只需将属性应用于需要授权的动作(方法)。
[Authorize]
public class ProtectedController : Controller
{
// all actions in this controller require the user to be logged in
}
public class MixedController : Controller
{
[Authorize]
public ActionResult ProtectedAction()
{
// this action requires the user to be logged in
}
public ActionResult PublicAction()
{
// this action is available to anonymous users
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.