无法访问其他网络服务器上的虚拟目录:拒绝访问

时间:2015-02-25 14:07:57

标签: asp.net authentication active-directory

我有一个新的ASP.NET网页,我试图使用Active Directory中定义的包含授权AD用户名称的安全组来保护(第一次)应用程序。

我为应用程序定义了一个虚拟目录(另一台服务器上的目录)。共享虚拟目录,安全组(各个用户的成员)可以访问相关服务器上的目录。

这一切都发生在同一个域上。

应用程序在单独的应用程序池中运行

以下是WEB.CONFIG

<authentication mode="Windows" >
</authentication>

<authorization>
  <deny users="?"/>
</authorization>

以下是按钮背后的一段测试代码

string theSSID = "";
if (Request.LogonUserIdentity.IsAuthenticated)
  {
  theSSID = Request.LogonUserIdentity.User.ToString();
  Label1.Text = "<br />Valid User : " + Request.LogonUserIdentity.Name.ToString() + " SSID = " + theSSID + "<br />";

  try
    {
    Label1.Text = Label1.Text + "<br />" + "A. Writing log file";
    string strFilePath = System.Web.Hosting.HostingEnvironment.MapPath(@"\Banking_UpLoad_Files\") + "CS_Log.txt";
    Label1.Text = Label1.Text + "<br />" + "B. Path For Log file " + strFilePath;
    StreamWriter sw = File.CreateText(strFilePath);
    Label1.Text = Label1.Text + "<br />" + "C. File " + strFilePath + "Written To Network Directory";
    }
  catch (Exception ex)
    {
    Label1.Text = Label1.Text + "<br />" + ex.Message;
    Label1.Text = Label1.Text + "<br />" + "2 .Access log from " + DateTime.Now.ToString();
    Label1.Text = Label1.Text + "<br />" + "2 .User: " + Request.LogonUserIdentity.User;
    Label1.Text = Label1.Text + "<br />" + "2 .Name: " + Request.LogonUserIdentity.Name;
    Label1.Text = Label1.Text + "<br />" + "2 .AuthenticationType: " + Request.LogonUserIdentity.AuthenticationType;
    Label1.Text = Label1.Text + "<br />" + "2 .ImpersonationLevel: " + Request.LogonUserIdentity.ImpersonationLevel;
    Label1.Text = Label1.Text + "<br />" + "2 .IsAnonymous: " + Request.LogonUserIdentity.IsAnonymous;
    Label1.Text = Label1.Text + "<br />" + "2 .IsGuest: " + Request.LogonUserIdentity.IsGuest;
    Label1.Text = Label1.Text + "<br />" + "2 .IsSystem: " + Request.LogonUserIdentity.IsSystem;
    Label1.Text = Label1.Text + "<br />" + "2 .Owner: " + Request.LogonUserIdentity.Owner;
    Label1.Text = Label1.Text + "<br />" + "2 .Token: " + Request.LogonUserIdentity.Token + "<br />";
    }
  }

  Label1.Text = Label1.Text + "<br />4. Complete <br />";

在.Net Server上运行时,上面的代码会生成以下输出

如果“应用程序池”设置为“网络服务”,则输出为

有效用户:RPS-DUNDEE \ wilson SSID = ************************

一个。写日志文件 B.日志文件路径\ RPS-Nas-2 \ Finance \ Banking上传文件\ CS_Log.txt

拒绝访问路径'\ RPS-Nas-2 \ Finance \ Banking Upload Files \ CS_Log.txt'。

2.从2015年2月25日12:47:31访问日志 2,用户:******************************** 2。名称:RPS-DUNDEE \威尔逊 2.AuthenticationType:谈判 2.ImpersonationLevel:假冒 2,IsAnonymous:错 2 .IsGuest:错 2,系统:错误 2。所有者:S-1-5-32-544 2.Token:1680

  1. 完成
  2. 如果应用程序池设置为本地服务,则错误为

    拒绝访问路径'\ RPS-Nas-2 \ Finance \ Banking Upload Files \ CS_Log.txt'。

    如果Application pool设置为Configurable(User Name = IWAM_DUN-SERVER3),那么错误是

    登录失败:未知的用户名或密码错误。

    任何人都可以提供帮助,因为这会让我摆脱困境。

    提前致谢并提供任何协助

    伊恩

1 个答案:

答案 0 :(得分:0)

是&#34; IWAM_DUN-SERVER3&#34; AD用户?

如果不是,请在AD中创建它!

然后,尝试定义您的应用池标识,如下所示:IWAM_DUN-SERVER3@domain.com