0

场景:Web 应用程序由一个根目录(打开,无授权)和许多子目录(我们称它们为 Sub1、Sub2 和 Sub3)组成。此外,当提供用户名时,有一种方法会联系 SP 并返回IEnumerable<String>由子目录名称组成的一个,该子目录的名称应该允许某个用户访问。以上是不可更改的。

我想知道解决这个问题的最巧妙的方法是什么。我不能依赖 AD,存储在 cookie 或会话变量中的简单授权不会允许可访问子目录的多样化。

我非常有信心我可以让它发挥作用,但我想以夸夸其谈的方式做到这一点。

建议?

4

1 回答 1

1

对我来说,听起来你可以web.config在每个子文件夹中放一个

<authorization>
   <allow roles="SubfolderName" />
   <deny users="*" />
</authorization>

然后,对于每个用户,将此IEnumerable<string>子文件夹列表的结果附加到角色管理器中的用户角色。

这样,每个尝试访问文件夹的用户都将在他/她的角色列表中拥有适当的角色,并且 url 授权模块将允许用户访问该文件夹。

于 2012-08-12T14:40:15.787 回答