gpt4 book ai didi

c# - 如何允许匿名用户访问 MVC 中的某个给定页面?

转载 作者:IT王子 更新时间:2023-10-29 04:09:18 25 4
gpt4 key购买 nike

我在我的 ASP.NET MVC Web 应用程序中启用了表单例份验证。我只想允许匿名用户访问某些特定页面,例如 Register.cshtml。通过这样做,我能够允许从我的根 web.config 访问我的 CSS 文件。

<location path="Content/Site.css">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

现在我想允许匿名访问其他页面,例如主页和注册。有没有人知道如何实现这一目标?

最佳答案

在 MVC 中,您通常使用 [Authorize] 属性来管理授权。具有该属性的 Controller 或单个操作将要求用户获得授权才能访问它们——所有其他操作将对匿名用户可用。

换句话说,黑名单方法,其中需要授权的操作被列入黑名单,供使用 [Authorize] 的匿名用户使用 - 所有操作(未使用该属性)都将可用。

更新:

MVC4 引入了一个新属性,即 [AllowAnonymous] 属性。与 [Authorize] 属性一起,您现在可以采用白名单方法。白名单方法是通过使用 [Authorize] 属性装饰整个 Controller 来实现的,以强制对该 Controller 内的所有操作进行授权。然后,您可以使用 [AllowAnonymous] 属性修饰不需要授权的特定操作,从而仅将这些操作列入白名单。通过这种方法,您可以确信自己不会意外地忘记使用 [Authorize] 修饰操作,让任何人都可以使用它,即使它不应该。

你的代码可能是这样的:

[Authorize]
public class UserController : Controller {

[AllowAnonymous]
public ActionResult LogIn () {
// This action can be accessed by unauthorized users
}

public ActionResult UserDetails () {
// This action can NOT be accessed by unauthorized users
}
}

关于c# - 如何允许匿名用户访问 MVC 中的某个给定页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com