ASP.NET MVC 和 ASP.NET 成员资格提供程序 - 全局处理身份验证

发布于 2024-08-07 05:35:06 字数 161 浏览 3 评论 0原文

我正在使用 ASP.NET MVC 构建一个小型应用程序,并使用 ASP.NET 会员资格提供程序来处理用户。将其连接到基本 MVC 模板的登录页面。

检查全局有效身份验证的最佳实践是什么?如果用户未在我的所有页面上进行身份验证,我基本上想重定向到首页或登录页面。

-安德斯

I'm building a small app with ASP.NET MVC and I'm using the ASP.NET membership provider for handling users. Hooked this up to the login page of the basic MVC template.

What is the best practice for checking a valid authentication globaly? I basically want to redirect to the front page or the login page if the user's not authenticated on all my pages.

-anders

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

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

发布评论

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

评论(3

萌吟 2024-08-14 05:35:06

在 MVC Preview 4 左右的时代,我们的做法是创建一个新的“BaseController”类,然后所有其他控制器都继承该类。这个 BaseController 类使用 Authorize 属性

[Authorize]
public class BaseController : Controller
{
...
}

然后我们的其余控制器继承自这个控制器

public class HomeController : BaseController
{
...
}

现在已经几个月没有使用 MVC 了,所以我不能说这是否仍然适用,所以请谨慎行事......

The way we did it, back in the days of MVC Preview 4 or so, was to create a new "BaseController" class, which every other controller then inherits from. This BaseController class uses the Authorize attribute

[Authorize]
public class BaseController : Controller
{
...
}

The rest of our controllers then inherited from this one

public class HomeController : BaseController
{
...
}

Haven't had to work with MVC for a few months now, so I can't say if this is still applicable, so proceed with caution...

泪意 2024-08-14 05:35:06

您应该只注释您想要使用 [Authorize] 进行身份验证的任何操作,并且可以选择使用一些必需的角色:

[Authorize()]
public ActionResult Index() {
  ...
  return View();
}

如果您愿意,这包括您的主页操作。未经授权的尝试将始终被重定向到登录页面。

You should just annotate any action you want to authenticate with [Authorize], and optionally with some required roles:

[Authorize()]
public ActionResult Index() {
  ...
  return View();
}

This includes your home page action, if you wish. Unauthorized attempts will be always redirected to the login page.

喵星人汪星人 2024-08-14 05:35:06

这可能有点过于复杂,但另一种方法可能是在管道中放置一个自定义 HTTP 模块,以便在用户未经身份验证时重定向请求。

this may be slightly over complicated, but another approach could be to put a custom HTTP Module in the pipeline to redirect the request if the user isn't authenticated.

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