gpt4 book ai didi

c# - MVC Authenticate 依赖什么认证?

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:41 25 4
gpt4 key购买 nike

我喜欢MVC的安全属性[Authorize],用于授权和认证。您可以传入角色或用户名,并用 [AllowAnonymous] 对其进行补充。伟大的。

问题是:MVC 如何知道我的用户是否已登录,或者他们处于什么角色?有没有办法告诉它我是如何进行身份验证的?还是假设我使用的是 ASP.NET Identity?还是别的?

我知道有人会说这是一个愚蠢的问题,但老实说,我查看了所有文档和其他地方,只是没有具体说明。

最佳答案

MVC 安全性与实际的安全性实现松耦合。这意味着无论您使用的是 Windows 身份验证(基于 Windows 用户)、Forms 身份验证(基于 cookie)还是其他一些身份验证方式,都没有关系。

如果你看一下 source code for AuthorizeAttribute你可以看到它所做的只是检查 IIdentity.IsAuthenticated property 是否为 true 来确定用户是否登录,并且还会检查 IPrincipal 接口(interface)以检查用户和/或角色。

简而言之,安全机制的唯一要求是实现 IPrincipal 和 IIdentity 并在 Application_BeginRequest event 中设置这些接口(interface)。 (用于无状态安全)或 Application_AcquireRequestState event (如果使用 session 状态来保证安全)在 Global.asax 中。

关于c# - MVC Authenticate 依赖什么认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27000483/

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