I had the same issue and decided to take the Google/Facebook approach and fake out the P3P header. I did end up having some problems though.
- First you must make sure that you pass that header with ALL.
- If you are using the Visual Studio Development Webserver the P3P header will be ignored for some reason. So host your app in IIS.
Problem 1:
To return that header with all of your requested actions add this to your Global.asax, customizing it for your needs of course:
protected void Application_BeginRequest(Object sender, EventArgs e) {
//
HttpContext.Current.Response.AddHeader("P3P", "CP=\"This is not a P3P policy! See http://mydomain.com/privacy-policy for more info.\"");
}
Problem 2:
Pretty self explanatory. Host your project in IIS.
I made the decision to bypass the P3P when I read that W3C had not worked on or updated the standard since 2006. That to me, means it is dead and we just have a major browser enforcing a dead standard. The project was mine, I was/am the client. So if you plan on taking the same actions and you're not writing something for yourself, check with the powers that be.
Cheers!