1

我使用 web.config 中的以下代码对我的 asp.net 网站实施了访问限制

<authentication mode="Windows">
  </authentication>    
<authorization>
  <allow users="na\user1, phil\user2, so on" />
  <deny users="*"/>
</authorization>

我应该为少数管理员用户提供一个界面(网页或模式弹出窗口),他们可以在其中查看当前用户、删除用户或添加用户以访问该站点。现在我想知道

1)如何以编程方式查找当前用户,即用户属性的值。

我通过使用来自asp.net 的以下代码解决了它如何在我的代码中引用在 web.config 中硬编码的授权用户

AuthorizationSection configSection =
  (AuthorizationSection)ConfigurationManager.GetSection("system.web/authorization");

    var users = new List<string>();

    var rules = configSection.Rules;

    foreach (AuthorizationRule rule in rules)
    {
        if (rule.Action == AuthorizationRuleAction.Allow)
        {
            foreach (string user in rule.Users)
            {
                if (!users.Contains(user))
                {
                    users.Add(user);

                }
            }

        }
        //rule.Users.Add("phil\user3");
        //rule.Users.Remove("phil\\user2");
    }

2) 如何在站点运行时通过删除或添加用户来更新 web.config?

我尝试使用上述代码中的注释行添加和删除用户,但这不起作用。

我在该代码中哪里错了?正如我所说,我需要在 web.config 中动态添加或删除用户,以便任何人都可以提供一些代码。提前致谢!

4

0 回答 0