繁体   English   中英

C# ASP.NET MVC 页面正在使用域用户而不是数据库用户连接到 SQL Server 会话存储

[英]C# ASP.NET MVC page is connecting to SQL Server session storage with domain user instead of database user

我有一个 ASP.NET MVC 页面,由于平衡需要会话存储,在研究了不同的解决方案后,它被选择使用 SQL Server 会话存储。

在我页面的web.config文件中,我添加了以下内容:

<sessionState 
    mode="SQLServer" 
    stateConnectionString="Server=<myip>:42424;user id=user; password=MySApassword;Trusted_Connection=False;Application Name=MyApp" 
    allowCustomSqlDatabase="true"
    cookieless="false" 
    timeout="15"/>

但是当我从 Visual Studio 运行我的应用程序时,我收到以下消息:

用户 DOMAIN\\MyPCUser 的 SQL Server 登录失败

有谁知道解决这个问题的方法?

看来 IIS 没有使用指定的用户登录到 SQL Server,而是尝试使用我的本地 pc 用户(这是一个域用户)。

在我的 SQL Server 一侧,当使用 SQL Server Management Studio 时,我可以使用这些凭据登录并执行操作,例如对为会话存储创建的表进行选择。

这是用于创建存储的命令:

c:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql -d SessionStorage -S
 <serverIP> -U <user> -P <mypassword> -ssadd -sstype c

您应该能够在 MSDN 上看到错误状态

  • 首先,查看您的 Web 应用程序在 ApplicationPoolIdentity 下运行的 Web 应用程序使用连接字符串中的 Windows 身份验证通过 ADO.Net 连接到数据库 Windows 身份验证使用的连接字符串包括Trusted_Connection=YesattributeWeb.config的等效属性Integrated Security=SSPI Web.config
  • 如果您的数据库连接处于 Windows 身份验证模式。 然后通过简单地将应用程序池标识从 ApplicationPoolIdentity 更改为您的域登录凭据 DomainName\\MyloginId 来解决它

步:

  1. 单击应用程序池
  2. 选择您的应用程序名称

进入高级设置

展开流程模型并单击身份。 单击右端的三个点。 单击设置...按钮并提供您的域登录凭据对我来说已解决。

注意:在生产或 IT 环境中,如果应用程序池标识在同一域下有服务帐户。 然后使用服务帐户而不是您的登录名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM