1

我在 IIS 上使用 Bonobo Git Server 有一段时间了,它运行良好。

我几乎从不使用网络界面,如果使用,我会以普通用户身份登录。

今天我以管理员身份登录,但顶部的管理员链接不见了。

通常我应该看到:

管理员链接

但我只得到正常的用户链接,create new repository按钮不显示,当我去:

../Settings/Index

我得到一个:

未经授权 - 您没有所选操作或页面的权限

我确定我以管理员用户身份登录并且角色成员身份没有更改,但似乎我只是一个普通用户。

Bonobo 或 Windows 日志中没有错误。

我将该站点复制到我的本地服务器,并且相同的文件工作正常,我看到了完整的管理界面。

我知道生产服务器上发生了一些服务器加固,但我不知道细节。

有人知道会发生什么吗?

4

1 回答 1

0

我调查了生产机器上的“服务器强化”,结果发现他们从机器级别的 IIS 中删除了许多未使用的模块和处理程序。

他们在所有站点上进行了测试,Bonobo Git 服务器似乎运行良好。

考虑到这个问题,管理员用户不被识别为管理员,我查看了 Bonobo 的源代码,他们正在使用User.IsInRole.

所以看起来他们正在使用 ASP.NET 成员资格提供程序。

然后我查看了删除的 IIS 模块,其中之一是:

System.Web.Security.RoleManagerModule

在本地删除它会导致我在生产服务器上遇到的完全相同的问题。

所以我要求服务器管理员重新添加该模块:

New-WebManagedModule -Name RoleManager -Type System.Web.Security.RoleManagerModule -Precondition "managedHandler" 

一切正常,管理员用户再次成为完全管理员。

于 2015-07-23T14:27:49.853 回答