ASP.NET MVC中基于url的自定义授权

时间:2013-07-24 21:13:45

标签: c# asp.net-mvc asp.net-mvc-4 iis-7

我在数据库中保存url,并且各个用户都映射到url

URL: ~/user

从申请表,我正在检查

bool isAuthorized = DBHelper.IsAuthorized(
string.Concat("~" , Url.Action("Index", "User"), 
httpContext.User.Identity.Name);

在开发环境中运行良好。但在生产中,应用程序是在IIS应用程序 ucms 下配置的,因此Url.Action(“Index”,“User”)返回/ucms/user,因此isAuthorized返回false。

任何人都可以就要解决此问题的更改提供任何意见或指示。

1 个答案:

答案 0 :(得分:1)

在检查之前删除虚拟路径:

var relativePath = yourPath.Remove(0, HttpContext.Current.Request.ApplicationPath.Length);

适用于虚拟目录和域名。