无效的授权规范
Posted
技术标签:
【中文标题】无效的授权规范【英文标题】:Invalid authorization specification 【发布时间】:2015-01-13 10:47:40 【问题描述】:请帮我解决问题。
我遇到了以下问题
OleDbException was unhandled by user code
Invalid authorization specification
我的代码:
string connectionString = ConfigurationManager.ConnectionStrings["OLEDbConnection"].ToString();
OleDbConnection con = new OleDbConnection(connectionString);
SqlConnection(ConfigurationManager.ConnectionStrings["App_Data\\DavidsFlowershop.mdb"].ToString());
string a = "select ProductName, Price from Products_tbl where ID=" + Request.QueryString["ID"].ToString();
try
con.Open(); <-- i got my problem here
OleDbCommand cmd = new OleDbCommand(a, con);
OleDbDataReader reader = cmd.ExecuteReader();
reader.Read();
web.config:
<connectionStrings>
<add name="OLEDbConnection" connectionString="data source=App_Data\DavidsFloweShop.mdb; Provider=SQLOLEDB" providerName="System.Data.OleDb.OleDbConnection"/>
【问题讨论】:
添加User Id=XYZ
属性。重用不是用于 ole db 的连接字符串后,我得到了同样的错误。将 User=XYZ
更改为 User Id=XYZ
修复了它。您也可以决定使用 Windows 身份验证,在这种情况下,您可以添加 Integrated Security=SSPI
并删除 User Id
属性。
【参考方案1】:
你的 web.config 中的连接字符串是
data source=App_Data\DavidsFloweShop.mdb; Provider=SQLOLEDB
但是
Provider=SQLOLEDB
行不通。如果您的代码将以 32 位运行,则需要使用
Provider=Microsoft.Jet.OLEDB.4.0
如果这不起作用,那么您的代码可能以 64 位运行,在这种情况下您需要使用
Provider=Microsoft.ACE.OLEDB.12.0
并确保您安装了 64 位版本的 Access Database Engine。
【讨论】:
我尝试将 Provider=SQLOLEDB 更改为 Microsoft.Jet.OLEDB.4.0 但我收到此错误。 'C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\App_Data\DavidsFloweShop.mdb' 不是有效路径。确保路径名拼写正确,并且您已连接到文件所在的服务器。 我更改了数据源,现在我遇到了这个问题。 “没有为一个或多个必需参数提供值。”从此代码 - OleDbDataReader reader = cmd.ExecuteReader(); @戈德汤普森 @J.Anne 那将是一个不同的问题。在您搜索 Stack Overflow(以及整个 Web)之后,如果您仍然需要有关新错误消息的帮助,那么您应该 ask a new question。【参考方案2】:您的连接字符串有问题。
查看http://www.connectionstrings.com,看看是否有适用于您的特定案例/数据库技术的示例。
【讨论】:
以上是关于无效的授权规范的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLInvalidAuthorizationSpecException:无效的授权规范 - 未找到
SendGrid API 密钥不起作用。 “提供的授权授权无效、过期或撤销”