Asp.Net MVC3只有在首先浏览页面A时才将未经身份验证的用户重定向到页面B.

时间:2012-11-28 18:32:48

标签: asp.net-mvc

我是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]);
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

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