惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
N
News and Events Feed by Topic
P
Privacy International News Feed
The Hacker News
The Hacker News
Schneier on Security
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
Security Latest
Security Latest
L
LINUX DO - 最新话题
阮一峰的网络日志
阮一峰的网络日志
Cisco Talos Blog
Cisco Talos Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
博客园 - 【当耐特】
博客园 - Franky
P
Privacy & Cybersecurity Law Blog
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
月光博客
月光博客
D
Docker
Webroot Blog
Webroot Blog
The GitHub Blog
The GitHub Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
S
Security Affairs
Martin Fowler
Martin Fowler
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Security Archives - TechRepublic
Security Archives - TechRepublic
Microsoft Azure Blog
Microsoft Azure Blog
C
CERT Recently Published Vulnerability Notes
B
Blog
L
Lohrmann on Cybersecurity
T
Threatpost
量子位
S
Schneier on Security
V
Visual Studio Blog
S
Securelist
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
aimingoo的专栏
aimingoo的专栏
The Register - Security
The Register - Security
I
Intezer
Stack Overflow Blog
Stack Overflow Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 聂微东
小众软件
小众软件
罗磊的独立博客
雷峰网
雷峰网
Recorded Future
Recorded Future

博客园 - 熵星尘

苦逼的程序员都是这么玩游戏的(微信:天天连萌) 关于ASP.NET动态加载控件的几点实用总结 记录代码运行耗时的写法 关于Linq to DataTable not in的写法 DevExpress AspxGridView数据绑定 发现一个Membership的bug 无法将类型为“Oracle.DataAccess.Types.OracleString”的对象强制转换为类型“System.String”。 asp.net页面中文件下载的2种方式 - 熵星尘 - 博客园 gridview 的添加删除等技巧 全部按名称取值 【部分转】innerText 跟 innerHTML区别 母板页中的引用的图片,JS,css等路径问题 - 熵星尘 - 博客园 如何获取GridView的EmptyDataTemplate中的控件 Mutex实现单实例,你真的搞懂了吗?来看看吧。 VS2008 如何在WinForm中显示flash - 熵星尘 - 博客园 【原创】从图像转换到byte[]数组的几种方法 除夕晚的一帖:如何为repeater内部控件设置javascript,如何取得它们的客户端ID。 回发或回调参数无效。 问题的解决和思考 - 熵星尘 - 博客园 【作品发布】正式发布Tuff的神奇小软盘1.2 【作品发布】QQ2008远程自助 1.5.1.1
asp.net验证组件membership登录失败的问题
熵星尘 · 2009-11-02 · via 博客园 - 熵星尘

不知道大家有没有遇到过这样的情况,在测试环境中,ASP.NET程序一切运行正常,可一旦部署到远程IIS server上时,membership验证就出现问题了,Login控件提示“登录失败,请重试”。如果你遇到过这种情况,请看如下解释。

这大都是由于ApplicationName引起的。我们在web.config中配置membership,role,profile等信息时,正常都会添加上ApplicationName='/'或ApplicationName='specificName'。如果你没有配置ApplicationName,那么这个问题就出现了。

简单的说,membership验证时是需要知道application的名字的。如果你配置了,那么一切都OK。如果你没配置,它默认会添加上虚拟目录的名字。这样就有问题了,因为我们在远程IIS中很可能使用了不同名字的虚拟目录,这就导致了原来的用户无法得到验证。

如果你不信的话,可以在自己的机器上修改membership的ApplicationName配置,然后你再试试原来的用户能否通过验证,答案是:不能。

ApplicationName的配置可以是一个特定的name,如MyApp。也可以是一个斜杠'/',它将使用ASP.NET 2.0默认配置。ApplicationName是存储在membership数据库的aspnet_Applications的表中的,大家可以check下。同时,每个用户都会对应一个applicationID(check aspnet_Users表),这就是为什么改了ApplicationName后,原先的用户将无法验证的原因了。

还是老话,问题虽小,希望大家能理解其中的原理,对今后有所帮助!同时,我也希望大家能够说说自己的理解和感受,并把自己的一些经验分享出来,让所有人都能得到提升!

Have a nice day!

================

本人也是同样的情况,这次用的是oracel,所以一直以为是oracel的问题,调试的时候成功,发布后IIS就不成功,看了上面的文章解决了问题。

以前一直用的ms sql,这次还特地又弄了个ms sql测试也成功,更加以为是oracel那边的配置,但是毕竟调试状态能通过,:)

这次测试正好注意到在web.config文件里配置的时候applicationName=“”,所以可能我留空了,在数据库第一次建立用户或角色的时候,就加入了一个名字,

而默认的是applicationName=“/",测试的时候ms sql我就用了applicationName="/"。总之,这个问题明显和MS SQL还是oracel是没有关系的,

关键就是你配置文件里面如果留空,那么第一次建用户或使用membership其他功能时,就会创建一条aspnet_Applications记录,而名字是带有应用名的,

比如我的是"/TLERP",如果配置文件指定"/"那就是"/"。