构建 MVC3 应用程序,TPTB 希望我们使用他们的自定义授权提供程序。然而,在开发过程中,这个身份验证提供程序有点麻烦,因为它要么在您关闭/重新启动浏览器之前给出错误,要么要求您在每次编译时重新登录。
现在,我只是添加了<authentication mode="None"/>
到 web.config,它工作正常,直到我遇到使用[Authorize(Roles = "Admin")]
过滤器(可以是任何角色,而不仅仅是管理员)。当它命中其中一个时,它只会呈现一个空白页面。
有没有办法在全球范围内暂时关闭这些过滤器?或者在我开发过程中为用户提供所有角色?
EDIT
让我澄清一下 - 我实际上是将一个大型应用程序从 MVC2 移植到 MVC3。它有很多[Authorize(Roles="Admin")]
and [Authorize(Roles="Admin,Editor")]
贯穿其中。如果可能的话,我宁愿不改变所有这些。
我是否应该创建一个自动提供所有角色的小型自定义角色提供程序?
您可以编写一个自定义授权过滤器,如果请求来自,则该过滤器不会执行任何检查localhost
:
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Request.Url.IsLoopback)
{
// It was a local request => authorize the guy
return true;
}
return base.AuthorizeCore(httpContext);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)