我目前正在我们的Asp.net应用程序中应用安全措施,并且必须解决一些问题,如x-frame-options,但在如何添加多个内容安全策略指令方面遇到了困难.
我搜索了很多,并没有找到关于如何在web.config中添加多个CSP指令的确切解决方案,但只能通过像blog.simontimms.com这样的代码.
目前这是我的CSP:
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Frame-Options" value="ALLOW-FROM http://subdomain.domain.com" />
<add name="Content-Security-Policy" value="frame-ancestors http://subdomain.domain.com" />
</customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在Asp.net web.config中添加多个内容安全策略指令?我试过下面用半冒号分隔的配置,但它不起作用:(
<add name="Content-Security-Policy" value="frame-ancestors http://subdomain.domain.com; img-src *; " />
Run Code Online (Sandbox Code Playgroud)
更新:
我认为上面的代码是添加多个指令的正确语法.我只是错过了'self'框架 - 祖先导致运行时错误,这让我觉得起初它是错的.
附加信息:
如果你运行了一些问题,你有很多子域,你可以'*'在其上放置通配符,如:
<add name="Content-Security-Policy" value="frame-ancestors 'self' http://*.domain.com; img-src *; " />
Run Code Online (Sandbox Code Playgroud) 我想我在这里有一个非常天真的问题,我之前不知道甚至可能.请原谅我,如果我的标题问题有点模糊,因为我甚至不知道如何描述它.这段代码对我来说很奇怪.
public interface IMyInterface
{
void ImplementMe();
}
public class StandAlone
{
public void ImplementMe()
{
Console.writeline("It works!");
}
}
public class SubClass : StandAlone, IMyInterface
{
// no need to implement IMyInterface here but it still work!!!
}
IMyInterface myInterface = new SubClass();
myInterface.ImplementMe(); // Output : "It works!"
Run Code Online (Sandbox Code Playgroud)
我只想知道以下内容:
我有复杂的模型(SyncBillToPartyMaster),我想自定义映射到我的简单POCO类.
Mapper.CreateMap<SyncBillToPartyMaster, CustomerAddress>()
.ForMember(d => d.CustomerId, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.CustomerParty.PartyIDs.ID.Value))
.ForMember(d => d.CustomerAddressId, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.PartyIDs.ID.Value))
.ForMember(d => d.City, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CityName))
.ForMember(d => d.State, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CountrySubDivisionCode.Value))
.ForMember(d => d.Country, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.CountryCode.Value))
.ForMember(d => d.Zip, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.PostalCode.Value))
.ForMember(d => d.Address1, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[0].Value))
.ForMember(d => d.Address2, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[1].Value))
.ForMember(d => d.Address3, o => o.MapFrom(src => src.DataArea.BillToPartyMaster.Location.Address.AddressLine[2].Value))
.ForMember(d => d.Phone1, o => …Run Code Online (Sandbox Code Playgroud) 我有“202006260718083370”作为输入值,我需要将其转换成解析-able为DateTime.Parse字符串。除了下面的方法,你还能想到什么优雅的方法?
方法 1 - 在中间单独插入字符串。
var input = "202006260718083370".Insert(5, "-")
.Insert(8, "-")
.Insert(11, " ")
.Insert(14, ":")
.Insert(17, ":")
.Insert(20, ".");
var dateTime = DateTime.Parse("2020-06-26 07:18:08.3370") // What input looks like
Run Code Online (Sandbox Code Playgroud)
方法 2 - 单独传入 new DateTime(....)
var year = "202006260718083370".Substring(0, 4);
var month = "202006260718083370".Substring(4, 2);
var date = "202006260718083370".Substring(6, 2);
var hour = "202006260718083370".Substring(8, 2);
var min = "202006260718083370".Substring(10, 2);
var sec = "202006260718083370".Substring(12, 2);
var mil = "202006260718083370".Substring(14, 4);
Run Code Online (Sandbox Code Playgroud)
方法 3 - 与方法 2 几乎相同。使用字符串数组和连接。喜欢 …