4

我有一个对所有用户开放的 MVC 4 应用程序,无需登录。只有一个控制器需要通过 Web.Config应用Windows 身份验证,如下所示:

  <authentication mode="Windows" />
    <authorization>
      <allow users="domain\jsmith" />
      <deny users="*" />
    </authorization>

控制器将MySite.Com/MyApp/MyAdminReportController

如果这是可能的,怎么做?

4

1 回答 1

5

我认为您只需要 Windows 身份验证并指定只需要授权的路径。如果您也不需要 Forms 身份验证,它看起来像这样:

<configuration>
  ...
  <system.web>
    ......
    <authentication mode="Windows">
    </authentication>
  </system.web>
  <location path="MyAdminReport">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>

</configuration>

这是网络配置方法,其他选项是将 [Authorize] 属性添加到您的控制器(即使不是孔控制器,您也可以仅为特定操作添加此属性)。

[Authorize]
public class MyAdminReportController : Controller
{

   //[Authorize]
   public ActionResult PrivatePage()
   {
      return View();
   }


}
于 2013-03-19T17:30:31.637 回答