【问题标题】:Using masterpages with selective impersonation使用具有选择性模拟的母版页
【发布时间】:2010-02-25 13:16:19
【问题描述】:

我网站的母版页正在使用从网络共享读取数据的控件。为了在所有页面上进行这项工作,我必须为整个站点启用模拟。但我想做的只是为实际读/写共享的页面启用它。例如:

    <location path="SystemAdmin">
    <system.web>
  <identity impersonate="true" password="abcdefgh" userName="MYDOMAIN\Administrator" />
  <authorization>
    <allow roles="Admin" />
    <deny users="*" />
  </authorization>
</system.web></location>

如果我这样做,我的母版页控件仅适用于管理页面。这里有点难过...

【问题讨论】:

  • 您不能将此 system.web 部分移动到您的 SystemAdmin 文件夹中吗?或者,使用 DS 身份验证并确保管理员用户可以访问网络共享是有意义的。
  • 是的,但这并不能解决问题。然后我仍然需要在主 web.config 中使用模拟来确保控件在非管理页面中工作(它在每个页面上,因为它在母版页中)

标签: asp.net master-pages impersonation


【解决方案1】:

你可以在后面的代码上使用 c# 代码模拟 或者你可以写 service n call 那个。如果不是真的 时间U可以放入本地存储r cach。

【讨论】:

    【解决方案2】:

    或者您可以仅将位置用于特定页面:

    【讨论】:

      【解决方案3】:

      好的,

      所以我只在母版页代码隐藏从网络共享读取数据时使用自定义类来模拟管理员。见:

      File.Exists returning false from a network share

      我对这个解决方案很满意,但如果有人有任何天才的解决方案,我会很高兴听到他们的意见。我对在 web.config 中存储管理员密码不满意;那么也许有人对此也有解决方案?

      谢谢

      【讨论】:

        【解决方案4】:

        一个更简单的说明。为什么不使用两个母版页。一个具有该功能,另一个没有。这样,您可以使用需要在特定页面中模拟的母版页和不需要从共享资源中获取信息的母版页。

        希望这会有所帮助。

        谢谢, 拉贾

        【讨论】:

        • 我的所有页面都需要从共享资源中获取信息,这就是为什么我不想在公共页面上进行模拟。
        猜你喜欢
        • 1970-01-01
        • 2023-03-30
        • 2010-09-26
        • 1970-01-01
        • 2016-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多