【问题标题】:Regex to find session state tag in web.config正则表达式在 web.config 中查找会话状态标记
【发布时间】:2014-03-26 05:48:51
【问题描述】:

我可能有一个带有自封闭标签的简单会话状态标签

  1. sessionState mode="StateServer" stateConnectionString="tcpip=CTSINTCOVOCPRD4:42424" />

  2. sessionState mode="StateServer" stateConnectionString="tcpip=CTSINTCOVOCPRD4:42424" /sessionState>

sessionState 结束标记可能在同一行或下一行。 sessionState 标签内可能还有其他设置标签。

我需要找到所有这些场景以获取完整的 sessionState 标记并将其从配置文件中删除。

我写了以下几行代码:

                if (Content.Contains("sessionState"))
                {
                    string RegularExpressionPattern = @"<sessionState.*?><\/sessionState>|<sessionState.*?>|<sessionState.*?>\n<\/sessionState>";
                    Regex myRegex = new Regex(RegularExpressionPattern, RegexOptions.None);
                    MatchCollection collection = myRegex.Matches(Content);
                    string stripped = collection[0].Value;
                    Content = Content.Replace(stripped, "");
                    return Content;
                }

内容:配置文件内容

如果 sessionState 结束标记在下一行或者它在 sessionState 标记内有任何其他设置标记,我正在同一行中获取带有自封闭标记的 sessionState 标记和带有结束标记的 sessionState,但没有得到正确的值。

我在这段代码中哪里做错了?

【问题讨论】:

    标签: c# html regex web-config session-state


    【解决方案1】:

    你为什么不使用:

    var sessionStatString = (SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState");
    

    对于 SessionStateSection :导入命名空间,using System.Web.Configuration;

    更新:

    Regex.Replace(Content, "</?(sessionState|SESSIONSTATE).*?>", string.Empty)
    

    注意:我强烈建议不要更新配置文件运行时

    【讨论】:

    • 我得到的是“{System.Web.Configuration.SessionStateSection}”值而不是 sessionStatetag?
    • 是的,所以从 sessionStatString 你会得到你想要的值。比如:sessionStatString.ModesessionStatString.stateConnectionString
    • 为什么要更新 web.config 运行时?这不是一个好习惯
    • 我不想要 mode 或 stateconnectionstring 这样的值,但想要完整的 sessionState 标签。像
    • 我想删除,然后 sessionState 标签将从根配置中引用,以避免重复。所以,请让我知道我是否可以获得完整的会话标签,无论里面可能有什么。
    猜你喜欢
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 2010-12-10
    相关资源
    最近更新 更多