我正在使用这样的Authorize属性:
[Authorize (Roles="Admin, User")]
Public ActionResult Index(int id)
{
// blah
}
Run Code Online (Sandbox Code Playgroud)
当用户不在指定的角色时,我会收到一个错误页面(找不到资源).所以我也将HandleError属性放入其中.
[Authorize (Roles="Admin, User"), HandleError]
Public ActionResult Index(int id)
{
// blah
}
Run Code Online (Sandbox Code Playgroud)
现在,如果用户不在指定的角色,它将进入" 登录"页面.
当用户不符合所需角色之一时,如何让它转到未授权页面而不是登录页面?如果发生不同的错误,我如何将该错误与未授权错误区分开来并以不同方式处理?
我们在所有(许多)内部应用程序中使用log4net.我们通常会执行相当于xcopy部署的操作.为方便开发人员,我们将log4net源编译为一个核心库.
现在又回来咬我们了.其他开源库(如Topshelf)引用log4net.还有一些(例如NServiceBus)将log4net合并到它们的程序集中.通常版本不同.
这是一个普遍的问题; 特定的库只是例子.
有几个类似的问题:
在各种解决方案(GAC,assemblyBinding,bindingRedirect等)中,未来可能会给我们带来最小的痛苦?我们可以修改我们的核心库; 我们无法做任何会破坏现场部署版本的事情.更新我们所有的项目参考将是痛苦的,所以我们只想这样做一次.
更新: Topshelf的当前版本抽象了日志记录,因此这不再是该框架的问题.