您究竟如何在 ASP.NET 中配置 httpOnlyCookies?

     2023-03-10     199

关键词:

【中文标题】您究竟如何在 ASP.NET 中配置 httpOnlyCookies?【英文标题】:How exactly do you configure httpOnlyCookies in ASP.NET? 【发布时间】:2010-09-07 04:56:46 【问题描述】:

受这篇 CodingHorror 文章“Protecting Your Cookies: HttpOnly”的启发

你如何设置这个属性?网络配置中的某处?

【问题讨论】:

【参考方案1】:

如果您使用的是 ASP.NET 2.0 或更高版本,您可以在 Web.config 文件中将其打开。在 部分中,添加以下行:

<httpCookies httpOnlyCookies="true"/>

【讨论】:

这对我不起作用。我尝试了“”,但两种设置都不起作用。 @rolls 我也有同样的问题。您找到解决方案或原因了吗?【参考方案2】:

借助 Rick 的道具(提到的博客文章中的第二条评论),这里是 httpOnlyCookies 上的 MSDN article。

底线是您只需在 web.config 的 system.web 部分中添加以下部分:

<httpCookies domain="" httpOnlyCookies="true|false" requireSSL="true|false" />

【讨论】:

顺便说一句 - 不要实际使用 domain="String" - 要么设置一个有效的域,要么忽略该属性。 @Dillie-O 什么会导致这个元素被锁定?当我在 web.config 文件中设置它时,我收到以下错误“元素 httpcookies 已被锁定在更高级别的配置中” @StackTrace - 您可以检查服务器本身上的 machine.config 文件,看看它是否有锁定的设置。【参考方案3】:

如果您想在代码中执行此操作,请使用 System.Web.HttpCookie.HttpOnly 属性。

这直接来自 MSDN 文档:

// Create a new HttpCookie.
HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// By default, the HttpOnly property is set to false 
// unless specified otherwise in configuration.
myHttpCookie.Name = "MyHttpCookie";
Response.AppendCookie(myHttpCookie);
// Show the name of the cookie.
Response.Write(myHttpCookie.Name);
// Create an HttpOnly cookie.
HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// Setting the HttpOnly value to true, makes
// this cookie accessible only to ASP.NET.
myHttpOnlyCookie.HttpOnly = true;
myHttpOnlyCookie.Name = "MyHttpOnlyCookie";
Response.AppendCookie(myHttpOnlyCookie);
// Show the name of the HttpOnly cookie.
Response.Write(myHttpOnlyCookie.Name);

在代码中执行此操作可让您有选择地选择哪些 cookie 是 HttpOnly 的,哪些不是。

【讨论】:

【参考方案4】:

有趣的是,在 ASP.NET 2.0 中添加 &lt;httpCookies httpOnlyCookies="false"/&gt; 似乎并没有禁用 httpOnlyCookies。查看这篇关于SessionID and Login Problems With ASP .NET 2.0的文章。

看起来 Microsoft 决定不允许您从 web.config 禁用它。检查这个post on forums.asp.net

【讨论】:

在 ASP .NET 5 中如何保护配置数据?

】在ASP.NET5中如何保护配置数据?【英文标题】:HowisconfigurationdataprotectedinASP.NET5?【发布时间】:2015-08-0909:45:26【问题描述】:ASP.NET5提供了许多选项来提供配置数据,而不是要求Web.config。这方面的信息可以在以下位置找到:Intr... 查看详情

如何在 asp.net core mvc 中配置确认电子邮件令牌的生命周期

】如何在asp.netcoremvc中配置确认电子邮件令牌的生命周期【英文标题】:Howtoconfigureconfirmationemailtokenlifespaninasp.netcoremvc【发布时间】:2017-10-1701:06:44【问题描述】:我正在尝试延长确认电子邮件和密码重置电子邮件的使用寿命,... 查看详情

如何在 ASP.NET 中获取根域 URI?

】如何在ASP.NET中获取根域URI?【英文标题】:HowcanIgettherootdomainURIinASP.NET?【发布时间】:2010-11-1522:08:24【问题描述】:假设我在http://www.foobar.com托管一个网站。有没有一种方法可以在我的代码中以编程方式确定“http://www.foobar.co... 查看详情

无法在 ASP.NET Core 和 React 中创建包含 jwt 的 httponly cookie

】无法在ASP.NETCore和React中创建包含jwt的httponlycookie【英文标题】:CannotcreatehttponlycookiecontainingjwtinASP.NETCoreandReact【发布时间】:2020-01-2615:17:21【问题描述】:我正在尝试在我的应用中实施身份验证方案。控制器,更具体地说是方... 查看详情

如何在 ASP.NET MVC 中获取当前用户

】如何在ASP.NETMVC中获取当前用户【英文标题】:HowtogetthecurrentuserinASP.NETMVC【发布时间】:2008-11-0421:24:25【问题描述】:在表单模型中,我曾经通过以下方式获取当前登录用户:Page.CurrentUser如何在ASP.NETMVC的控制器类中获取当前... 查看详情

如何在 ASP.NET CORE 3.0 中配置路由以使用带有 [FromQuery] 参数的重载 [HttpGet] 方法?

】如何在ASP.NETCORE3.0中配置路由以使用带有[FromQuery]参数的重载[HttpGet]方法?【英文标题】:HowtoconfigureroutinginASP.NETCORE3.0touseoverload[HttpGet]methodwith[FromQuery]parameters?【发布时间】:2019-12-1013:41:55【问题描述】:对不起标题,我不擅... 查看详情

如何在 ASP.NET 标识中添加声明

】如何在ASP.NET标识中添加声明【英文标题】:HowtoaddclaimsinASP.NETIdentity【发布时间】:2013-12-2110:42:58【问题描述】:我正在尝试查找有关如何使用ASP.NET身份在MVC5中向用户身份添加自定义声明的文档或示例。该示例应显示在OWIN安... 查看详情

Asp.Net MVC:如何确定您当前是不是在特定视图上

】Asp.NetMVC:如何确定您当前是不是在特定视图上【英文标题】:Asp.NetMVC:Howtodetermineifyou\'recurrentlyonaspecificviewAsp.NetMVC:如何确定您当前是否在特定视图上【发布时间】:2010-09-0714:52:16【问题描述】:我需要确定我是否处于特定视... 查看详情

如何在 ASP.NET Core 2.0 中根据路由配置服务身份验证

】如何在ASP.NETCore2.0中根据路由配置服务身份验证【英文标题】:HowtoConfigureServicesAuthenticationbasedonroutesinASP.NETCore2.0【发布时间】:2018-03-0922:06:40【问题描述】:在ASP.NETCore1.x中,我可以在Configure中使用身份验证方法,但现在在ASP... 查看详情

如何在 tomcat/java webapps 中配置 HttpOnly cookie?

】如何在tomcat/javawebapps中配置HttpOnlycookie?【英文标题】:HowdoyouconfigureHttpOnlycookiesintomcat/javawebapps?【发布时间】:2010-09-0704:46:49【问题描述】:在阅读了Jeff在ProtectingYourCookies:HttpOnly上的博文后。我想在我的网络应用程序中实现H... 查看详情

如何在 ASP.NET MVC 5.2.3 和 Katana 中正确设置双重身份验证?

】如何在ASP.NETMVC5.2.3和Katana中正确设置双重身份验证?【英文标题】:Howtosetuptwo-factorauthenticationinASP.NETMVC5.2.3andKatanacorrectly?【发布时间】:2015-11-0207:00:00【问题描述】:在您通过VisualStudio2015CommunityRC在ASP.NETMVC5.2.3模板中获得的... 查看详情

如何在 ASP.NET MVC 操作中获取引荐来源网址?

】如何在ASP.NETMVC操作中获取引荐来源网址?【英文标题】:HowdoIgetthereferrerURLinanASP.NETMVCaction?【发布时间】:2010-12-0101:37:47【问题描述】:我正在尝试在您调用操作之前重定向回页面。【问题讨论】:请记住,并非所有用户代理... 查看详情

如何在 ASP.NET Core 2.2 中使用 IValidateOptions 验证配置设置?

】如何在ASP.NETCore2.2中使用IValidateOptions验证配置设置?【英文标题】:HowtovalidateconfigurationsettingsusingIValidateOptionsinASP.NETCore2.2?【发布时间】:2019-11-2919:43:20【问题描述】:Microsoft的ASP.NETCore文档brieflymentions可以实现IValidateOptions&am... 查看详情

ASP.NET Core 6 如何在启动期间访问配置

】ASP.NETCore6如何在启动期间访问配置【英文标题】:ASP.NETCore6howtoaccessConfigurationduringstartup【发布时间】:2021-10-2612:10:04【问题描述】:在早期版本中,我们有Startup.cs类,我们在Startup文件中获取配置对象如下。publicclassStartupprivat... 查看详情

如何在 ASP.NET Core 6 中使用 DateOnly/TimeOnly 查询参数?

】如何在ASP.NETCore6中使用DateOnly/TimeOnly查询参数?【英文标题】:HowcanIuseDateOnly/TimeOnlyqueryparametersinASP.NETCore6?【发布时间】:2021-09-1505:40:54【问题描述】:从ASP.NETAPI中的.NET6开始,如果您想获取DateOnly(或TimeOnly)作为查询参数,... 查看详情

如何使用 ASP.NET MVC 在配置文件中显示当前登录用户详细信息

】如何使用ASP.NETMVC在配置文件中显示当前登录用户详细信息【英文标题】:HowtoshowcurrentloginUserdetailsinprofileusingASP.NETMVC【发布时间】:2021-10-0702:02:34【问题描述】:我想使用Session在用户配置文件中显示用户详细信息,但它不能... 查看详情

如何在 ASP.NET Core 中基于解决方案配置运行脚本

】如何在ASP.NETCore中基于解决方案配置运行脚本【英文标题】:HowtorunscriptsbasedonsolutionconfigurationinASP.NETCore【发布时间】:2016-06-0215:27:56【问题描述】:我的project.json文件中有以下脚本,用于将我的类库项目构建到NuGet包中。我不... 查看详情

如何在 ASP.NET Core Web API 中配置 JSON 格式的缩进

】如何在ASP.NETCoreWebAPI中配置JSON格式的缩进【英文标题】:HowcaniconfigureJSONformatindentsinASP.NETCoreWebAPI【发布时间】:2016-12-3004:32:53【问题描述】:我如何配置ASP.NETCoreWebApi控制器以仅为Development环境返回格式良好的json?默认情况下... 查看详情