我是Spring Security的新手.如何添加将在用户成功登录时调用的事件侦听器?此外,我需要在此侦听器中获取某种唯一的会话ID,该ID应该可以进一步使用.我需要此ID与另一台服务器同步.
有一个选择下拉列表,我想在列表中添加"No selection"项目,在提交时应该给我'null'.我正在使用SimpleFormController派生控制器.
protected Map referenceData(HttpServletRequest httpServletRequest, Object o, Errors errors) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("countryList", Arrays.asList(Country.values()));
return map;
}
Run Code Online (Sandbox Code Playgroud)
并且jspx部分是
<form:select path="country" items="${countryList}" title="country"/>
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方案似乎是在列表的开头添加一个空值,然后使用自定义PropertyEditor将此"null"显示为"No selection".有更好的解决方案吗?
@Edit:我用自定义验证注释解决了这个问题,该注释检查所选值是否为"No Selection".有更标准,更简单的解决方案吗?
是否有VS插件或独立应用程序形式的IL级调试器?
Visual Studio的调试器很棒,但它允许您在HLL代码级别或汇编语言上进行调试,您无法调试IL.在某些情况下,似乎有机会在IL级别进行调试.
特别是在调试代码中没有源代码的问题时可能会有所帮助.
如果在没有源的情况下调试IL实际上是有用的,那么这是有争议的,但无论如何.
我无法理解这个概念,首先是它所属的概念.它只是一个Shrepoint概念还是更像ASP.NET或IIS级别的概念?它是否只影响身份验证,如果是,它如何影响身份验证?或者它对应用程序有什么影响?我知道这是一个广泛的问题,但我用Google搜索了大约15分钟,但未能找到答案.对我来说这对我来说并不那么重要,但我很好奇.
您能否提供一个资源的链接并解释这个?谢谢!
@Edit:我的意思是像身份验证提供程序中的区域:表单区域:Intranet(Internet,默认)
@Edit:从我现在所理解的情况来看,这些区域与IIS Web应用程序与sharepoint Web应用程序的关联以及与此相关的网站集有关.例如,您可以扩展Web应用程序以创建新的IIS Web应用程序,但从sharepoint的角度来看,它只是指向具有相同网站集集的同一Web应用程序的另一个URL.扩展IIS Web应用程序可以具有与其关联的不同共享点区域(或者可以是相同的区域),从而提供对同一共享点应用程序的不同访问点使用不同身份验证方法的方法.
我在这儿吗?
如何在VS代码编辑器中突出显示文件中所有出现的短语(搜索词)?
有没有办法在Java中定义一个类似于以下C#泛型constratint的泛型约束?
class Class1<I,T> where I : Interface1, Class2 : I
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
class Class1<I extends Interface1, T extends I & Class2>
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨"Class2"部分:Type参数不能跟随其他边界.
我有一个方法
private static String DecompressAndDecode(byte[] data)
{
GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
StreamReader decompressed = new StreamReader(decompressor, Encoding.UTF8);
String result = decompressed.ReadToEnd();
return result;
}
Run Code Online (Sandbox Code Playgroud)
我有一些GZipped文本作为输入,结果应该是这个文本的字符串表示.问题是该方法返回一个空字符串.让我感到困惑的是,当我在调试模式中执行该方法并到达return语句时,结果变量是一个空字符串但是如果我为decompressed.ReadToEnd()表达式创建一个监视器,它会返回文本.在这一点上我期望的是包含文本的结果变量和评估为空字符串的decompressed.ReadToEnd()表达式.(重新评估decompressed.ReadToEnd()表达式会返回一个空字符串,如预期的那样).
@Edit:我发现在我的情况下, ReadToEnd()返回第二次调用的文本,在第一次调用和第二次调用之后返回空字符串.
必须有一些明显我在这里失踪的东西.
如果没有缓存到期相关的头信息(除了Date,Last-Modified和ETag),这将是对于如果一个资源保质期的HTTP响应Content-Type是text/html的?
它取决于浏览器吗?
XmlElement.Attributes.Remove*方法适用于任意属性,导致从XmlDocument.OuterXml属性中删除已删除的属性.然而,Xmlns属性是不同的.这是一个例子:
XmlDocument doc = new XmlDocument();
doc.InnerXml = @"<Element1 attr1=""value1"" xmlns=""http://mynamespace.com/"" attr2=""value2""/>";
doc.DocumentElement.Attributes.RemoveNamedItem("attr2");
Console.WriteLine("xmlns attr before removal={0}", doc.DocumentElement.Attributes["xmlns"]);
doc.DocumentElement.Attributes.RemoveNamedItem("xmlns");
Console.WriteLine("xmlns attr after removal={0}", doc.DocumentElement.Attributes["xmlns"]);
Run Code Online (Sandbox Code Playgroud)
结果输出是
xmlns attr before removal=System.Xml.XmlAttribute
xmlns attr after removal=
<Element1 attr1="value1" xmlns="http://mynamespace.com/" />
Run Code Online (Sandbox Code Playgroud)
该属性似乎从Attributes集合中删除,但不会从XmlDocument.OuterXml中删除.我想这是因为这个属性的特殊含义.
问题是如何使用.NET XML API删除xmlns属性.显然我可以从String的表示中删除该属性,但我想知道是否可以使用API执行相同的操作.
@Edit:我说的是.NET 2.0.
这个问题与我之前的问题有关.
您能解释或提供一个链接,说明Excel VBA代码密码保护在2007年之前的版本中是如何实际运行的吗?在密码保护方面,Excel 2007和以前版本有什么区别?
Excel的密码保护实际上也加密了代码吗?如果加密,Excel如何执行代码?
最后,excel的密码删除软件如何工作?