MVC 5 身份验证

Posted

技术标签:

【中文标题】MVC 5 身份验证【英文标题】:MVC 5 Authentication 【发布时间】:2015-07-02 04:34:53 【问题描述】:

我有一个带有不记名令牌身份验证的 Web API 2,其中外部站点在我的 api 中进行身份验证并通过在请求标头中发送令牌来发出请求,但我也有一个 MVC 5 网站,其中身份验证应该是自动的这个网站,Web API 将有一个重定向到这个网站的方法,它应该已经打开了认证,这个网站将只有一个客户端,web api,并且用户来自 web api 的认证。

如何自动验证网站? 我想了两种不同的方法来解决这个问题:

    使用身份验证 cookie,我在其中执行从 web api 到传递登录信息的站点的重定向(放置在 web.config 中,带有用户和密码,或一种密钥),然后,网站执行身份验证并为浏览器设置 cookie。 在 web api 和网站中使用不记名身份验证(在 web.config 上使用相同的机器密钥),当 web api 重定向到网站时,它会传递为客户端生成的不记名令牌,但是当用户导航时在网站上,我需要一直在标头中传递这个令牌,我认为在 web api 和网站之间共享这个令牌不是一个好主意,当导航结束时,流程需要返回web api,并且必须再次进行身份验证或将相同的令牌传递给 web api。

以下哪种方法最正确?还是有其他方法可以解决这个问题?

【问题讨论】:

【参考方案1】:

我会选择选项 2,您可以使用令牌身份验证和您需要识别传入请求来自您的 API 的声明。它是无状态的、简单的,您不需要在 url 之间传递敏感数据

【讨论】:

以上是关于MVC 5 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MVC 5 中设置本地授权身份验证?

ASP.NET MVC 5 中的基本身份验证

如何让 mvc 管道在 .net core 5 中对 oidc 进行身份验证

WebGrid MVC 5 - 显示基于身份验证和授权的操作按钮

为网站和移动应用程序混合 MVC 5 + WEB API 2 身份验证

我们可以在不使用 ASP.Net Identity 的情况下使用 MVC 5 提供的 cookie 身份验证吗?