0

我是 ASP.NET MVC 编程的新手。我的站点中有以下代码,它将所有未签名的用户重定向到位于文件夹 \content\ 的页面,具体取决于他们当前所在页面的结尾。如果用户已被重定向到此页面,我如何修改此代码以便不执行重定向?

using System.Globalization;
using System.Web;
using System.Web.Mvc;

namespace MYSITE.Web.Infrastructure
{
    public class CategoryRedirectAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (((ViewResult)filterContext.Result).ViewName.StartsWith("ProductList", true, CultureInfo.InvariantCulture))
                {
                    var categoryProductPath = filterContext.RouteData.Values["categoryProductPath"].ToString().Split('/');
                    if (categoryProductPath.Length > 0)
                    {
                        HttpContext.Current.Response.Redirect("/Content/" + categoryProductPath[categoryProductPath.Length - 1]);
                    }
                }
            }
        }
    }
}
4

1 回答 1

0

你让自己的生活变得困难。您可以使用基于角色的 FormsAuthentication 来识别用户,并使用控制器或操作方法上的 [Authorize] 属性来控制谁可以做什么。

希望您会发现这很有用:http: //msdn.microsoft.com/en-us/library/ff398049 (v=vs.100).aspx

于 2012-11-28T22:16:25.393 回答