特定控制器上的 ASP.NET MVC2 Windows 身份验证

发布于 2024-10-10 05:11:29 字数 139 浏览 3 评论 0原文

在 ASP.NET MVC2 中,如何配置站点,以便默认情况下不需要身份验证,但在一个特定控制器上我确实需要 Windows 身份验证。

编辑:根据我的测试,我认为这是不可能的。

In ASP.NET MVC2 how do I configure a site such that by default no authentication is required, but on one particular controller I do want Windows Authentication.

Edit: I don't think this is possible based on my testing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烏雲後面有陽光 2024-10-17 05:11:29
[Authorize]
public class MyController : Controller
{
  public ActionResult Index()
  {
    return View();
  }
}

MyController 上的所有操作都需要授权,但任何不具有 [Authorize] 属性的内容都应该可以公开访问。

您还需要在 web.config 中设置 Windows 身份验证。

<authentication mode="Windows"/>

此链接可能会有所帮助。

编辑

唯一需要创建单独的应用程序的情况是,如果您需要在同一站点内同时使用 Windows 和表单身份验证 - 例如,如果您需要用户进行表单身份验证才能点击某个讨论论坛,但用于管理区域的 Windows 身份验证。由于身份验证方法是在应用程序级别设置的并且无法覆盖,因此在这种情况下,应用程序中需要 Windows 身份验证的部分必须拆分为单独的 Web 应用程序和 IIS 中的虚拟目录。

[Authorize]
public class MyController : Controller
{
  public ActionResult Index()
  {
    return View();
  }
}

will require authorization for all actions on MyController, but anything that doesn't have the [Authorize] attribute should then be publically accessible.

You'll also need to set the Windows authentication in web.config.

<authentication mode="Windows"/>

This link may be helpful.

Edit

The only time it should be necessary to create a separate application is if you need to use both Windows and forms authentication within the same site - for instance, if you needed forms authentication for users to hit, say, a discussion forum, but windows authentication for an admin area. Since the authentication method is set at the application level and can't be overridden, in this case the parts of the app that require windows authentication would have to be split into a separate web app and virtual directory in IIS.

痕至 2024-10-17 05:11:29

我认为这是不可能的,因为您需要在 IIS 中的站点级别设置 Windows 身份验证。您将需要两个单独的网络应用程序来实现此功能。

I do not think this is possible since you need to set windows auth at the site level in IIS. You will need two separate web apps for this functionality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文