- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的问题描述听起来有些复杂,这让我觉得我的方法有缺陷,所以我也会感谢任何更好的想法。
简短描述:
给定 MSSQL 2008 数据库的连接字符串和部署在 IIS6 上的网站名称,我想以编程方式验证网站是否能够连接到数据库。
详细描述:
portal_db
.portal
的应用程序.我可以通过 url http://localhost/portal
访问它.在 Web.config 文件中,我指定了数据库的连接字符串,如下所示:"server=(local)\SQLEXPRESS;trusted_connection=yes;database=portal_db"
System.Data.SqlClient.SqlConnection
访问数据库,没有任何包装器、ORM、映射等任何东西。PortalAppPool
.它正在使用 ApplicationPoolIdentity
作为安全上下文。当我的 Web 应用程序尝试连接到数据库时,它要么成功要么失败,这取决于用户 IIS APPPOOL\PortalAppPool
是否成功。在 MSSQL 数据库中配置。这是我理解的一部分,但是在部署我的应用程序时,我经常忘记在 db 中为 apppool 虚拟帐户创建新用户/登录。所以我想做的是从单独的、独立的控制台应用程序(最好用 C# 编写,但不一定)验证我的 Web 应用程序是否可以通过以下方式访问数据库:
Web.config
读取连接字符串SqlConnection
使用从 Web.config
读取的连接字符串归结为以下片段:
using (new Impersonator("IIS APPPOOL\\PortalAppPool", "", ""))
{
SqlConnection conn = new SqlConnection(databaseConnectString);
conn.Open();
}
当我的应用程序池安全上下文设置为 AppPoolIdentity
以外的任何其他值时,一切都运行良好- 特定用户、本地系统等。当我更改传递给 Impersonator
的凭据时到我的用户名和密码,我得到了想要的结果(当我在数据库中没有登录映射时异常(exception),当我添加一个时一切正常)。但我似乎无法模仿 IIS APPPOOLS\PortalAppPool
虚拟账户 - 只是不知道应该将哪些参数传递给 LogonUser
- 即使不可能,我也不会感到惊讶。也许我过于关注模拟方法(我正在使用它来访问其他用户的注册表项和服务并且效果很好),也许有一些更好的方法。
如果您有任何其他更好的想法,或者需要对此问题进行更多解释,请告诉我。
最佳答案
我认为您不能模拟虚拟帐户(IIS 服务帐户)。它们是主要用于 IIS 安全的特殊服务帐户设置。它们仅用于本地服务,不能附加到任何域。 Windows Server 2008 R2 和 Windows 7 中的虚拟帐户是“托管本地帐户”,提供以下功能以简化服务管理:
您不能“登录”虚拟帐户,Windows 出于安全目的使用它们:
如果你有时间,可以读一些简单的书:
要解决您最初的问题,您可以构建一个可以执行相同逻辑的应用程序,但检查 sql server 是否具有正确的用户设置,而不是简单地尝试使用该帐户登录。
关于c# - 在独立应用程序中模拟 IIS DefaultAppPool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957141/
我的问题描述听起来有些复杂,这让我觉得我的方法有缺陷,所以我也会感谢任何更好的想法。 简短描述: 给定 MSSQL 2008 数据库的连接字符串和部署在 IIS6 上的网站名称,我想以编程方式验证网站
在这个问题上遇到困难。不确定如何,但我的 ApplicationPoolIdentity 已损坏。 目前,我正在使用 Visual Studio 2012 在 Windows 8 上运行 IIS 8。
我每次访问网站时都会收到事件日志条目: Event Type: ErrorEvent Source: VsJITDebuggerEvent Category: NoneEvent ID: 40
我在获取登录机器的用户名时遇到困难。 Environment.UserName 返回“defaultAppPool”,我需要返回用户名。如何除冰? 最佳答案 您可以尝试以下方法之一: 方法一: str
我正在使用 ADSI 查询 IIS 元数据库的网页中运行一段代码。代码很简单: DirectoryEntry iisNode = new DirectoryEntry(
我有一个从 DefaultAppPool 帐户运行的网络应用程序。我想将一些文件写入 DefaultAppPool 的 AppData 文件夹(或任何其他文件夹,我的应用程序正在运行的帐户可以 100
我正在尝试按照此处答案中的建议进行操作:How do I set the .NET Framework Version when using New-WebAppPool? 并使用命令: Set-It
我在 IIS 中遇到超时问题。在 web.config 中, session 超时设置为 60 分钟,但 20 分钟后 session 结束。 此问题仅出现在 IIS7 中,不会出现在 IIS5 中。
当我在 sql server 2005 上运行时: EXEC sp_grantlogin "IIS APPPOOL\DefaultAppPool" 我收到错误: Msg 15401, Level 11
我们有一个站点,该站点运行在具有 2 台 64 位计算机的 Windows 2003 集群上。 该站点需要能够处理超过 20,000 个并发用户 该站点所做的其中一件事是允许下载一个 2MB 的文件(
我正在尝试为ASP NET App授予对数据库的访问权限(这些仅用于测试而非生产)。 这是我第一次在此网络中尝试使用它,之前我还没有使用VS2012,SQL Server 2012 Express,W
我正在研究“Windows Communication Foundation 4 Step By Step”中的一些 WCF 示例。只要服务托管在 casini 中,我生成的应用程序就可以正常运行。将
是否有一个 appcmd 可以通过 appcmd 在 IIS7 上的 DefaultAppPool 上将Load User Profile 设置为 false? 我已经尝试过了 %systemroot
当我在 asp.net 网络应用程序中单击网络表单页面的按钮时,如何重新启动 IIS 6 的 defaultAppPool。 我尝试使用 HttpRuntime.UnloadAppDomain();但
如果我在域级别将完全控制权授予 EVERYONE 用户,是否意味着本地虚拟用户、APP Pool/DefaultAppPool 用户也可以访问该文件夹? 最佳答案 本地用户将不会拥有与域用户相同的权限
我在 Windows7 上的 IIS 7.0 遇到了奇怪且无法解决的问题。 我尝试在我的本地测试服务器上运行网站并收到以下错误: Access to the temp directory is den
我是一名优秀的程序员,十分优秀!