询问IdentityServer 4用户是否登录,如果没有,请保持匿名?



我有一个IdentityServer 4,为一组单独的MVC应用程序提供身份。每个 MVC 应用都提供一组不同的功能。

我将Authorize属性放在 MVC 应用程序中的操作上。如果未经身份验证的用户点击该操作,则会将该用户发送到身份服务器的登录页面,并进行身份验证或拒绝权限。

如何允许匿名用户进入操作,但仍点击 IdentityServer 以确定用户是否已通过身份验证(例如,通过点击其他 MVC 应用程序中的授权操作(?

根据定义,[Authorize] 属性不允许匿名用户...

当您使用 AuthorizeAttribute 标记操作方法时,可以访问该操作方法 操作方法仅限于同时经过身份验证和 授权。 https://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.118(.aspx

。因此,如果要允许匿名用户访问操作/控制器,则无法使用该属性标记该操作/控制器。

如果您只想知道点击该操作的用户是否通过身份验证,您可以查看他们的ClaimsPrincipal,可从控制器访问。有一个方便的快捷方式,您可以从控制器操作中访问User对象。

最新更新