不断提示输入凭据

时间:2018-06-23 11:27:27

标签: c# asp.net-mvc authentication windows-authentication

我到目前为止所做的:

  1. 使用此web.config创建网站(这只是设置部分,而不是整个文件:))

    <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    <add key="autoFormsAuthentication" value="false"/>
    <add key="enableSimpleMembership" value="false"/>
    </appSettings>
    <system.web>
    <compilation debug="true" targetFramework="4.6.2"/>
    <httpRuntime targetFramework="4.6.2"/>
    <authentication mode="Windows"></authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
    </system.web>
    
  2. 创建了一个控制器:

    [Authorize(Users = @"myPcName\myUserName,skynet\Simple")]
    public class AuthenController : Controller
    {
        [Authorize(Users = @"myPcName\myUserName")]
        public ActionResult ForAdministrator()
        {
            return View();
        }
        [Authorize(Users = @"myPcName\Simple")]
        public ActionResult ForUser()
        {
            return View();
        }
    }
    

我通过以下命令获得了凭据:cmd-> whoami

  1. 我以发布模式将我的mvc网站发布到了c:\ inetpub \ wwwroot \ backoffice
  2. IIS中的
  3. enter image description here

  4. 我甚至通过Intranet选项将站点添加到了本地Intranet,而且: enter image description here

它只会不断提示我输入凭据:

enter image description here

1 个答案:

答案 0 :(得分:0)

只是为了尝试帮助遇到此问题的任何人: 解决问题的方法是: 单击VS中的项目。 按F4转到属性 将“匿名身份验证”设置为“禁用”

在web.config中:

<authentication mode="Windows"></authentication>
<authorization>
  <allow users="*" />
</authorization>

并在您的控制器中:

    [Authorize(Users = @"pcName\user")]
    public ActionResult ForAdministrator()
    {
        return View();
    }

    // Authorization with windows authentication (user)
    [Authorize(Users = @"pcName\user")]
    public ActionResult ForUser()
    {
        return View();
    }

其中pcName是您的PC的名称(不是WORKGROUP!)

通过这种方式,您可以控制允许谁访问(因为禁用了匿名身份验证)。

希望它可以帮助某人。 Rotem