使用iOS上的Google Chrome浏览器在ASP.NET网站上进行FormsAuthentication-程序员宅基地

技术标签: ViewUI  github  java  chrome  cookie  javascript  

A few people have said that they have noticed problems the new iPhone/iPad Google Chrome apps as well as trouble with applications that use hosted Safari inside of UIWebView (which is what Chrome is) or apps that host a website in PhoneGap. If you're using FormsAuthentication (in WebForms or MVC, doesn't matter) then Google Chrome for iOS might switch FormsAuth to Cookieless mode, which sucks for everyone.

少数人说,他们注意到新的iPhone / iPad Google Chrome应用程序出现问题,以及在UIWebView(Chrome即为Chrome浏览器)中使用托管Safari的应用程序或在PhoneGap中托管网站的应用程序出现问题。 如果您使用的是FormsAuthentication(在WebForms或MVC中无关紧要),则iOS的Google Chrome可能会将FormsAuth切换为无Cookie模式,这对所有人来说都很糟糕。

This has been fixed in .NET 4.5 and you won't see this problem if you have .NET 4.5 installed, even if you're running a .NET 4 application. For example, Bing.com is running .NET 4 applications under .NET 4.5 RC and wouldn't see this. If you install 4.5 (now or later) ASP.NET will always assume clients support cookies.

.NET 4.5中已修复此问题,即使您正在运行.NET 4应用程序,如果安装了.NET 4.5,也不会出现此问题。 例如,Bing.com在.NET 4.5 RC下运行.NET 4应用程序,并且看不到此内容。 如果安装4.5(现在或更高版本),ASP.NET将始终假定客户端支持cookie。

If you want to tell ASP.NET 4.0 or earlier that EVERY browser supports cookies for FormsAuth you can do ONE of these things:

如果你想告诉ASP.NET 4.0或更早版本,每一个为FormsAuth浏览器支持Cookie,你可以做的这些东西

1.为您的应用程序(或计算机)更改Generic.Browser (1. Change Generic.Browser for your app (or machine))

Make a file called generic.browser in a folder called App_Browsers and put this in it:

在名为App_Browsers的文件夹中创建一个名为generic.browser的文件,并将其放入其中:

<browsers>
<browser refID="GenericDownlevel">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>

2.在您的web.config中强制Cookieless = UseCookies (2. Force Cookieless=UseCookies in your web.config)

Add cookieless="UseCookies" for your forms element in web.config.

在web.config中为表单元素添加cookieless =“ UseCookies”。

<authentication mode="Forms" >
<forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies" />
</authentication>

Hope this helps.

希望这可以帮助。

相关链接 (Related Links)

翻译自: https://www.hanselman.com/blog/formsauthentication-on-aspnet-sites-with-the-google-chrome-browser-on-ios

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cunfusq0176/article/details/109054565

智能推荐

android 自定义dialog解决刘海屏不铺满问题_android 刘海屏 不能全屏-程序员宅基地

文章浏览阅读2.1k次。1.正常dialog写法,如果有刘海屏,上面是不会顶到最上面,刘海位置空出来了// 创建Dialogfinal AlertDialog dialog = new AlertDialog.Builder(activity).create();Window window = dialog.getWindow();window.setBackgroundDrawableResource(android.R.color.transparent);// 设置点击dialog以外区域不取消Dialogd_android 刘海屏 不能全屏

静态链表(初始化,插入,删除)C语言实现_c++静态链表-程序员宅基地

文章浏览阅读637次,点赞3次,收藏8次。动态链表就是用数组描述的链表(这种描述方法叫游标实现法),我们让数组的每个元素都由一个结构体组成,结构体有两个成员,data和cursor,而cursor就相当于链表的next指针,用来存放后继元素在数组中的下标。_c++静态链表

php酷狗音乐API接口,酷狗音乐抓取api-程序员宅基地

文章浏览阅读1k次。关键词抓取歌曲列表,获取hashhttp://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=%E6%88%91%E4%BB%AC%E4%B8%8D%E4%B8%80%E6%A0%B7&page=1&pagesize=20&showtype=1{"status":1,"error":"","dat..._r=play/getdata

华为云云耀云服务器L实例评测|在Docker环境下部署Mysql数据库_华为云 httpd+mysql实例-程序员宅基地

文章浏览阅读659次,点赞3次,收藏3次。华为云云耀云服务器L实例评测|在Docker环境下部署Mysql数据库_华为云 httpd+mysql实例

python模型持久化_Python模型本地持久化存储-程序员宅基地

文章浏览阅读295次。Python模型本地持久化存储通常我们线下训练好的模型,部署到线上运行,这就需要把模型进行本地硬盘持久化,比如保持到文件中,然后再在其他主机上导入内存进行分类和预测。下面就介绍几种模型持久化存储方法。1. pickle模块pickle是python标准模块,一种标准的序列化对象的方法。你可以使用pickle操作来序列化你的任何类对象,当然也包括机器学习模型,保存这种序列化的格式到一个文件中。需要的..._pytorch 网络模型持久化存储

如何判断一段程序是由C++编译还是C编译-程序员宅基地

文章浏览阅读3.1k次,点赞3次,收藏12次。(1)如果是要你的代码在编译时就发现编译器类型,就判断_cplusplus或_STDC_宏,如果是一个C文件被编译,那么_STDC_就会被定义,_STDC_是预定义宏,当它被定义后,编译器将按照ANSIC标准来编译C语言程序。通常许多编译器还有其他编译标志宏。#ifdef __cpluspluscout<<"c++";#elsecout&l..._判断一段程序是由c

随便推点

lstm多输入时间序列预测_梯度阈值等于1说明什么-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏45次。lstm 多输入时间序列预测clcclose allclear all%加载数据,重构为行向量load data.matIN_train = data((1:4197),2:9)';OUT_train = data((1:4197),10)';% 测试集――10个样本IN_test = data((4198:end),2:9)';OUT_test = data((4198:end),10)';N = size(IN_test,2);[in_train, ps_input] = ma_梯度阈值等于1说明什么

嵌入式 CC2543 RF中断详解_网程里254c3f-程序员宅基地

文章浏览阅读1.3k次。芯片是TI CC2543 因为公司要求,选定的芯片是TI 的CC2543,这款芯片很少人用,资料也就是官方的资料和例程,下面是我自己根据这几天看的例程,总结一下,如果哪里不对,欢迎大家斧正。下面用的是TI给的例程,GenericBroadcast 程序。_网程里254c3f

iOS视图控制器<1>_ios 视差视图控制器。-程序员宅基地

文章浏览阅读425次。在iOS中,动态界面是通过视图控制器来管理的,视图控制器是UIViewController的实例。一个视图控制器管理一个单独的视图,当然,这个视图还有子视图。视图控制器的view属性指向它管理的视图,即视图控制器的主视图(main view)。视图控制器的主视图并不拥有一个直接指向管理它的视图控制器的指针,但是视图控制器是UIResponder,在响应者链中刚好处在它的视图之上,所以视图控制器就是视_ios 视差视图控制器。

计算机毕业设计Node.js+Vue家政预约系统(程序+源码+LW+部署)_基于vue和node.js的家用电器维修预约管理系统的设计与实现-程序员宅基地

文章浏览阅读150次。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:项目技术:Express框架 + Node.js+ Vue 等等组成,B/S模式 +Vscode管理+前后端分离等等。环境需要1.运行环境:最好是Nodejs最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发环境:Vscode或HbuilderX都可以。推荐HbuilderX;3.mysql环境:建议是用5.7版本均可4.硬件环境:windows 7/8/10 1G内存以上;_基于vue和node.js的家用电器维修预约管理系统的设计与实现

Android 10系统及以上IMEI的获取_android10获取设备mmei-程序员宅基地

文章浏览阅读2.1k次。IMEI是一个15位的数字标识,用于唯一标识移动通信设备,例如手机、平板电脑和调制解调器等。您可以通过拨打"*#06#"(或类似的代码)来查看您的设备的IMEI号码。且每个应用的Android ID都不一样,该Android ID除非进行恢复出产设置或者刷机,否则是一直不会改变,这是Google处于隐私考虑,提供给应用开发者一个临时长期的唯一识别码(广告ID)在Android10系统,正常情况下是不允许直接获取到IMEI,而是由系统生成一串虚拟的Android ID。_android10获取设备mmei

java exception 级别_Java异常体系概述-程序员宅基地

文章浏览阅读397次。Java的异常体系结构Java异常体系的根类是 Throwable, 所以当写在java代码中写throw抛出异常时,后面跟的对象必然是Throwable或其子类的对象。其中Exception异常是指一些可以恢复的异常, 例如常见的NullPointerException空指针异常。Error指的是一些致命的错误,无法通过程序代码手段恢复的异常,例如OutOfMemoryError内存溢出错误。u..._exception等级

推荐文章

热门文章

相关标签