如果用户已登录,请向IdentityServer 4询问,如果不是,请保持匿名?

时间:2017-05-26 07:41:01

标签: asp.net-mvc identityserver4

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

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

我如何允许匿名用户加入操作但仍然命中IdentityServer以确定用户是否已经过身份验证(例如,通过在其他一个MVC应用程序中点击授权操作)?

1 个答案:

答案 0 :(得分:0)

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

  

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

...如果您想允许匿名用户访问它,您将无法使用该属性标记操作/控制器。

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