0

在我的 C# MVC4 应用程序中,我将基于表单的身份验证与 Active Directory 一起使用。我有一个自定义的 AD 会员提供程序。我已经成功测试它可以读取并验证用户所属的组。现在,我尝试创建一个自定义授权属性,它将执行以下操作:

if (user is logged-in/not timed-out/authenticated)
{
   if (user's role is equal to role 1 or role 2)
      {
        return a specific view or (preferably) perform a specific redirect to action
      }
   else
      {
       return a different specific view or (preferably) perform a different specific     redirect to action
      }
}
else
    {    
     return View
    }

这是我到目前为止所拥有的:

public class AuthorizeEditAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext.Request.IsAuthenticated)
            {
                if ((httpContext.User.IsInRole("group1")) || (httpContext.User.IsInRole("group2")))
                {

                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
}

我不知道如何执行重定向任务。我看过这篇讨论如何进行重定向的帖子,但不明白如何将它与我目前所拥有的内容整合在一起。特别是因为我相信我必须使用 AuthorizeCore 来访问 httpcontext.user 以进行我执行的第一次检查,并且我不知道如何传入 AuthorizationContext 类型的另一个参数来执行看起来沿着所需路径传递的操作重定向。

4

1 回答 1

1

我认为您还应该覆盖该OnAuthorization方法。这有一个AuthorizationContext参数可以让您将结果设置RedirectResult为您喜欢的...

于 2013-04-20T23:39:03.153 回答