我有一个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
对象。