ASP.NET MVC 3 给 Web 用户带来挑战?

发布于 2024-11-28 11:02:52 字数 223 浏览 3 评论 0原文

在 ASP.NET Webforms 时代,我有一个 HTTP 模块,它提出 401 质询以获取用户名/密码、进行身份验证并继续。我使用基于 SSL 的基本身份验证来兼容许多不同的浏览器,并且还使用中央数据库存储来检查凭据。

使用最新的 MVC 位,我正在寻找一种方法来完成同样的事情。正确/现代的方法是什么?现在 Forms Auth 是唯一的方法吗?我确实需要向用户呈现熟悉的“登录框”。

谢谢。

In the ASP.NET Webforms days, I had an HTTP Module that presented a 401 challenge to get the user name/password, authenticate, and move on. I did with Basic Authentication over SSL to be compatible across many different browsers, and also to use a central database store for checking credentials.

With the latest MVC bits, I am looking for a way to do the same thing. What is the proper/modern method to do that? Is Forms Auth the only way these days? I really need to present the familiar "logon box" to the users.

Thanks.

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

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

发布评论

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

评论(2

紅太極 2024-12-05 11:02:52

Forms Auth 是当今唯一的方法吗?

表单身份验证只是一种身份验证方法。您还可以使用集成 Windows 身份验证、基本身份验证、摘要身份验证、OpenID 或其他方案。但无论您使用哪种类型的身份验证,在 ASP.NET MVC 中,您都可以使用 [Authorize] 属性。或者,如果您需要更多控制,您可以编写一个派生自标准身份验证属性的自定义身份验证属性。

Is Forms Auth the only way these days?

Forms authentication is just an authentication method. You could also use Integrated Windows Authentication, basic, digest, OpenID, or some other scheme. But no matter which type of authentication you are using, in ASP.NET MVC you decorate your controllers/actions (which require authentication) with the [Authorize] attribute. Or if you need more control you could write a custom authentication attribute deriving from the standard one.

叹沉浮 2024-12-05 11:02:52

如果您仍然希望使用该模块,您可能需要注意,在 MVC 中基于 URL 的授权很困难,因为许多 url 和更改使 url 访问变得棘手。 RESTful url 可以经常更改,并且多个 URL(ok URI)可以映射到同一位置。在 MVC 中,正如 Darin 指出的,重要的是在控制器类或方法上使用 [Authorize]。这里的想法是,无论使用什么 URI 来访问当前资源,您都知道权限是正确的。

处理该属性时,将检查用户角色成员资格,如果没有重定向到您想要的任何登录 URL(假设例如形成身份验证),但是您的身份验证提供程序可以将其配置为在用户未经授权时执行“任何操作” 。在 Windows 身份验证的情况下,系统会提示您登录对话框,就像通过 401 质询完成的那样,这就是为什么我说您仍然可以使用您的方法。

Windows 身份验证作为示例在此处完成: MVC 中的 Windows 身份验证

If you are still looking to use that module, you can possibly but beware that URL based authorization is difficult in MVC because of the many urls and changes that make url access tricky. RESTful urls can change often and multiple URLs (ok URIs) can map to the same location. In MVC, as Darin noted, the important thing is to use [Authorize] on the controller class or methods. The idea here is no matter what the URI used to access the current resource, you know the permissions will be correct.

When the attribute is processed user role membership will be checked and if not redirect to whatever login url you want (assuming for instance forms auth) but this can be configured by your authentication provider to do 'whatever action' if the user isn't authorized. In the case of windows authentication you would be prompted with a login dialog as would be done via a 401 challenge which is why I say you can possibly still use your method.

Windows auth as an example is done here: Windows Auth in MVC

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