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

Ian*_*ink 4 c# asp.net authentication asp.net-mvc asp.net-mvc-4

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

  <authentication mode="Windows" />
    <authorization>
      <allow users="domain\jsmith" />
      <deny users="*" />
    </authorization>
Run Code Online (Sandbox Code Playgroud)

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

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

Orh*_*aan 5

我认为您只需要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>
Run Code Online (Sandbox Code Playgroud)

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

[Authorize]
public class MyAdminReportController : Controller
{

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


}
Run Code Online (Sandbox Code Playgroud)