我正在我的公司运行带有表单身份验证的mvc Web应用程序。
为方便起见,我希望允许同一内部网中的人无需登录即可访问此Web应用程序。
有没有办法根据UserHostAddress跳过登录页面?
答案 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()
{
...
}