我正在IIS上使用Bonobo Git服务器一段时间,它运行正常。
我几乎不使用网络界面,如果我这样做,我会以普通用户身份登录。
今天我以管理员身份登录,但顶部的管理员链接丢失了。
通常我应该看到:
但是我只获得了正常的用户链接,create new repository
按钮没有显示,当我去的时候:
../Settings/Index
我得到了:
未经授权 - 您无权访问所选操作或页面
我确信我已经以管理员用户身份登录,并且角色成员身份尚未更改,但似乎我只是普通用户。
Bonobo或Windows日志中没有错误。
我将网站复制到我的本地服务器,同样的文件工作正常,我看到完整的管理界面。
我知道生产服务器上已经发生了一些服务器强化,但我不知道细节。
有人知道这会是什么情况吗?
答案 0 :(得分:0)
我调查了生产机器上的"服务器强化" ,结果发现它们在机器级别从IIS中删除了许多未使用的模块和处理程序。
他们在所有网站上进行了测试,而Bonobo Git Server似乎运行良好。
考虑到问题,管理员用户未被识别为管理员,我查看了Bonobo的源代码,他们正在使用User.IsInRole
。
所以看起来他们正在使用ASP.NET成员资格提供程序。
然后我查看了删除的IIS模块,其中一个是:
System.Web.Security.RoleManagerModule
在本地删除导致我在生产服务器上遇到的完全相同的问题。
所以我要求服务器管理员将该模块添加回来:
New-WebManagedModule -Name RoleManager -Type System.Web.Security.RoleManagerModule -Precondition "managedHandler"
一切正常,管理员用户再次成为完全管理员。