我有一个ASP.NET v2.0
根目录是公共的网站(不是 Web 应用程序),但“Admin”子目录需要身份验证。有关设置的所有内容都非常通用 - 我使用了根 web.config 和标准AspNetSqlMembershipProvider
提供程序中定义的连接字符串,并且我使用的是 ASP.NET 登录控件。
Admin 目录中的 web.config 指定用户必须具有“Admin”角色。
我正在使用SQL Server 2008
,我的连接字符串很好;每个根级页面都是数据驱动的,它们都可以正常工作。
提供者配置似乎不错。
当我登录时,登录控件的“ OnLoggedIn
”事件会触发。
该事件代码中的最后一行将我重定向到我的Admin/Default.aspx
页面。我在“OnLoggedIn”中的断点显示一切都很好,直到重定向到我的管理目录......然后......
......然后我等待......等待......
然后我得到一个错误,告诉我它经历了一个“ SQLExpress database file auto-creation error
。”
为什么它会突然尝试创建 SQL Server Express 文件?为什么它突然忽略了我的连接字符串?
一个奇怪的线索:就在“OnLoggedIn”事件的最后一行之前,我输入了这个:
bool blnTest = User.IsInRole("Admin");
我想看看是否blnTest = true
。
发生的事情是该进程到达这条线......并等待......最终告诉我它无法访问 SQL Server Express 数据库。似乎任何用于确定用户角色的参考(无论是在我的代码中还是在幕后)都调用了错误的数据库。
编辑:啊,有时当我测试 blnTest 时它会等待。其他时候,它会立即将该值报告为“假”。