我有一个IdentityServer 4为一组独立的MVC应用程序提供身份。每个MVC应用程序都提供了一组不同的功能。
我将Authorize
属性放在MVC应用中的操作上。如果未经身份验证的用户访问该操作,则会将用户发送到IdentityServer的登录页面,并进行身份验证或拒绝权限。
我如何允许匿名用户加入操作但仍然命中IdentityServer以确定用户是否已经过身份验证(例如,通过在其他一个MVC应用程序中点击授权操作)?
答案 0 :(得分:0)
根据定义,[Authorize]
属性不允许匿名用户...
使用AuthorizeAttribute标记操作方法时,可以访问该方法 action方法仅限于经过身份验证的用户 授权。 https://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.118).aspx
...如果您想允许匿名用户访问它,您将无法使用该属性标记操作/控制器。
如果您只是想知道通过您是否通过身份验证用户点击该操作,可以查看可从控制器访问的ClaimsPrincipal
。这是一个方便的快捷方式,您可以从控制器操作中访问User
对象。