有没有办法跳过表单身份验证进行内部网访问?

时间:2011-03-15 19:32:03

标签: asp.net-mvc asp.net-mvc-3

我正在我的公司运行带有表单身份验证的mvc Web应用程序。

为方便起见,我希望允许同一内部网中的人无需登录即可访问此Web应用程序。

有没有办法根据UserHostAddress跳过登录页面?

1 个答案:

答案 0 :(得分:0)

您可以为此目的编写自定义AuthorizeAttribute

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (IsIntranetAddress(httpContext.Request.UserHostAddress))
        {
            return true;
        }
        return base.AuthorizeCore(httpContext);
    }

    private bool IsIntranetAddress(string ip)
    {
        throw new NotImplementedException();
    }
}

然后装饰通常需要使用此属性进行身份验证的控制器/操作:

[CustomAuthorize]
public ActionResult Foo()
{
    ...
}