3

当我尝试访问网页时,我收到以下消息:

HTTP 错误 401.2 - 未经授权 由于身份验证标头无效,您无权查看此页面。

从这张图片可以看出:

在此处输入图像描述

考虑到我要从登录屏幕直接进入此页面并且没有收到提示,这很令人困惑。我也可以在没有提示的情况下访问该站点的任何其他部分。

这是我用来链接到此屏幕的代码:

@using SuburbanCustPortal.SuburbanService

<br />
<br />
<table>

  @if (ViewData["CustomerData"] != null) { 
    foreach (var usr in (IEnumerable<CustomerData>) ViewData["CustomerData"])
    {
      <tr>

        <td>
          <a href="/Customer/ShowCustomer/@usr.AccountId/">View</a>
        </td>

        <td>
          @usr.Branch-@usr.AccountNumber
        </td>

        <td>
          @usr.Name
        </td>

        <td>
          @usr.DeliveryStreet
        </td>

      </tr>
    }
  }

</table>
<br />

它与作为链接有关吗?如果是这样,我该如何解决这个问题?

更新#1

这是被调用的动作:

public ViewResult ShowCustomer(string id)
{
  var corpid = MiscClasses.TokenIdCookie.GetTokenIdCookie();
  var sb = new StringBuilder();
  sb.AppendLine("SuburbanCustPortal,Controllers.CustomerController.ExistingAccounts");
  sb.AppendLine(string.Format("corpid: {0}", corpid));
  sb.AppendLine(string.Format("accountid (id): {0}", id));
  Logging.LogInfo(sb.ToString(), _asName);

  var cr = new CustomerRequest();
  cr.CompanyId = corpid;
  cr.Account = id;

  return View("AccountScreen", _client.GetCustomerByGuid(cr));
}

更新#2

我正在使用以下身份验证:

在此处输入图像描述

4

1 回答 1

3

看来您的 IIS 要求您通过基本身份验证质询/响应进行身份验证。匿名访问被禁用,因此出现身份验证对话框。

启用匿名身份验证,您应该一切顺利。

应该启用的日常 Asp.net 应用程序(包括 MVC 应用程序)的常用身份验证方法是:

  • 匿名和
  • 形式

所有其他取决于您的应用程序的特定要求和/或环境(即域配置)。

于 2012-11-21T16:46:38.233 回答