2012-11-21 22 views
3

当我尝试去到一个网页,我得到这个消息:被提示登录时,我不应该

HTTP错误401.2 - 未经授权您无权查看此 页面由于无效的认证报头。

正如你可以从图中看到:

enter image description here

这是混淆考虑到我从我的登录屏幕直接到这个页面,我没有得到一个提示。我也可以去网站的任何其他部分,而不会被提示。

这里是我使用的链接到这个屏幕的代码:

@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> 
      @[email protected] 
     </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

我使用以下验证:

enter image description here

+0

需要您正在链接的操作以及操作返回页面的标记... – Jared

+1

您在IIS中配置了哪些身份验证选项? – jgauffin

+3

在IIS上启用匿名身份验证... –

回答

3

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

启用匿名验证你应该很好去。

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

  • 匿名和
  • 形式

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

+0

k thx我将进行更改并查看结果! – ErocM