c# – ASP.NET MVC 4将Windows身份验证应用于单个控制器?

我有一个MVC 4应用程序,对所有用户开放,无需登录.只有一个控制器,我需要通过Web.Config应用Windows身份验证,如下所示:authentication mode=Windows /authorizationallow users=domain\jsmith /deny user...

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

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

控制器将是MySite.Com/MyApp/MyAdminReportController

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

解决方法:

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

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

</configuration>

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

[Authorize]
public class MyAdminReportController : Controller
{

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


}

本文标题为:c# – ASP.NET MVC 4将Windows身份验证应用于单个控制器?

基础教程推荐