搞了我一下午竟然是web.config少写了一个点

2023-05-11,,

Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.config 的formsauthentication 的name属性的值少写了一个点“.”!

悲催啊!所以不得不写一篇文章来纪念这个悲催的下午!也为了帮助其他人以后【百度】的时候,可以根据中文关键字找到这个解决方案。

BUG是这样产生的。

本来我们的网站只有一个主域名(www.sport7.cn)用来访问,后来为了支持城市子域名(如 cq.sport7.cn)就做了域名泛解析。然后手机版Safari浏览器就无法登陆了,不管怎么登陆,formsauthentication里面指定的cookie name的cookie始终不能正确写到浏览器,所以request.isAuthenticated始终为false。

我把web.config文件中的authentication节点下的所有属性都试了一个遍,始终authentication cookie就是写不到客户端。在网上搜了几个小时,尝试了所有的建议、猜测、可能,但仍然不行。

后来,突然一个疑问出现在大脑里,我所搜到的web.config的配置例子,几乎所有的formsauthentication 的 name 都是以“.”开始,我不明白为什么,但仍然试了一下,结果,居然解决了!

这里,我再把正确的配置写出来,以便有朋友需要:

<authentication mode="Forms">
<forms loginUrl="~/login" timeout="2880" name=".SPORTSEVEN" domain=".sport7.cn"/>
</authentication>

不知道是不是因为做了泛解析才必须要加这个点“.”,反正所有PC浏览器不加这个点是没有任何问题的。Safari真TM作死算了。

想要看看泛解析模式下的表单身份认证,欢迎访问我们网站:动美网 | http://www.sport7.cn

搞了我一下午竟然是web.config少写了一个点的相关教程结束。

《搞了我一下午竟然是web.config少写了一个点.doc》

下载本文的Word格式文档,以方便收藏与打印。