ASP.NET MVC连接到具有有限访问权限的DSN



我有一个数据库,访问权限非常有限。我需要从数据库的VIEW中获取一些数据。我有一个通用的Windows帐户,只有在按住Shift键并单击Sql Server Studio并以其他用户身份打开并使用默认的Windows身份验证(不支持Sql Server身份验证(的情况下才能登录。我创建了一些DNS,但我只能使用默认的Windows NT身份验证和SQL Server登录。问题是,当我使用Windows NT时,我会得到错误:

[Microsoft][ODBC SQL Server Driver][SQL Server]用户登录失败'DOMAIN\SERVERNAME'。错误[2800]

我的代码:

try
{
OdbcConnection cn;
OdbcCommand cmd;
string MyString;
MyString = "Select * from users";
cn = new OdbcConnection("dsn=DB77;UID=****;PWD=****;");
cmd = new OdbcCommand(MyString, cn);
cn.Open();
cn.Close();
}
catch(Exception e)
{
return e.ToString();
}

我想使用Windows身份验证从数据库获取数据。代码、ODBC数据源管理、IIS中有问题吗?

我个人将NHibernate与MVC结合使用。最初我选择它是因为我们的数据库不支持EF,但我非常喜欢它,即使我们转移到SQL Server,我也会保留NHibernate。

学习曲线有点奇怪。成为一名专家肯定很难,但有趣的是,当你适应某些层次时,让它为你处理越来越多的工作是非常有机的。

因此,对于您的情况,NHibernate可能支持您的数据库,可以用作一个简单的数据访问层(只返回DTO(,提供一个与数据库无关的接口,并可以在时机成熟时支持SQL Server。如果你最终想要从NHibernate获得更多,那么时机成熟时它就在那里。

nHibernate与Windows身份验证无关。SQL server将使用您的进程标识进行身份验证如果配置为使用windows身份验证。这意味着,如果你的应用程序是一个网络应用程序,你需要确保应用程序在可以由SQL Server进行身份验证的windows标识下运行。不幸的是,无法通过数据库连接字符串提供windows凭据。使用windows身份验证时的连接字符串示例:数据源=myServerAddress;初始目录=myDataBase;综合安全=SSPI;模拟:http://msdn.microsoft.com/en-us/library/xh507fc5.aspx

最新更新