在我的 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 类型的另一个参数来执行看起来沿着所需路径传递的操作重定向。