【问题标题】:Server asks for Username and Password when Uploading File服务器在上传文件时询问用户名和密码
【发布时间】:2013-08-10 12:25:23
【问题描述】:

为了上传文件,我将<identity impersonate="true" /> 添加到Web.Config 文件中,因为我无法设置读取和写入权限。

一切正常,但现在,我不知道原因,服务器一直要求我输入用户名和密码来上传文件,我插入了我的 ftp 用户名和密码。

我怎样才能绕过这个? (我只能编辑 Web.config)

目前,我有这个:

<identity impersonate="true" />

<authentication mode="Windows"/>

我试过了:

<identity impersonate="true" userName="ftpaccount" password="ftppassword" />

但是没有用。

【问题讨论】:

  • 您的服务器使用哪个 IIS 版本?

标签: c# asp.net authentication iis


【解决方案1】:

您尝试的第二个选项似乎不太正确,因为在使用 WindowsAuthentication 时,用户名的格式应为:DOMAIN_NAME\UserName 用于域帐户,COMPUTER_NAME\UserName 用于本地用户帐户。

还要确保尝试模拟的用户帐户有足够的权限在您的上传目录中创建文件。这是我的应用程序在使用时也面临同样情况的原因之一:&lt;identity impersonate="true" /&gt;

以下简洁的描述可能会有所帮助。

在使用 IIS 7.5 时,ASP.NET 应用程序使用网络服务帐户来请求系统资源。 此设置在Machine.config&lt;system.web&gt; 部分的&lt;processModel&gt; 元素中定义。

<processModel autoConfig="true" />

在某些情况下,autoConfig 的值可能为 false。因此,在使用 Windows 身份验证时有两种可能的方式:[在您的应用程序的 Web.config 中提供这些]

1.) &lt;identity impersonate="true" /&gt;。我们应该确保其身份的用户
impersonated 具有在 Upload 目录中创建文件的足够权限。

2.) 我们可以提供一个将始终使用的帐户名称:

<identity impersonate="true" userName="DOMAIN\Username" password="password" />

再次,用户需要有足够的权限。还要确保用户名的格式为:DOMAIN_NAME\UserName 用于域帐户,COMPUTER_NAME\UserName 用于本地用户帐户。

【讨论】:

  • 使用System.Security.Principal.WindowsIdentity.GetCurrent().Name; 我得到了您指定格式的名称,所以现在,这是被模拟的默认用户,对吧?我只需要允许该用户对我上传到的文件夹进行读/写访问吗?
  • 另外,当我删除 impersonate = true 时,我得到了这个:NT AUTHORITY\NETWORK SERVICE
  • 是的。正确的。那么现在,您是否尝试过为用户帐户提供足够的权限?或者尝试使用已经拥有足够权限的 UserAccount。
  • 我无法访问 IIS 服务器,我必须联系这个世界上我现在最讨厌的人。
猜你喜欢
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 2015-11-11
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多