【发布时间】:2018-03-23 15:40:14
【问题描述】:
我正在为我的 Web API 2 设置权限,但我遇到了一个我已经研究了很长时间的问题。
当我在本地运行我的应用程序时,我无法使用IPrincipal.User 方法在我的ApiController 上获取当前用户名。我想要做的是在我的 AD 中搜索用户,然后过滤返回的组以确定用户是否有权访问不同网页的某些访问权限。
为了克服无法使用IPrincipal 类获取当前用户的问题,我使用了HttpContext.Current.Request.LogonUserIdentity.Name;。这可行,但我不明白为什么我不能使用 IPrincipal 类来实现同样的效果。
脚注:
我是否需要以某种方式配置我的 ApiController 以便用户从 IPrincipal 类返回?
在 Web.Config 文件中我设置了以下身份验证模式:
<authentication mode="Windows" />
【问题讨论】:
-
IPrincipal.User是什么意思?IPrincipal是一个接口,所以它没有任何属性。 -
@GabrielLuci 在我的 ApiController 中,如果我输入“用户”,它会给出一个我可以调用的方法列表,它说它是以下内容的一部分:System.Security.Principal.IPrincipal ApiController.User
-
@GabrielLuci 此外,我还看到了一些示例,如果您调用 User.Identity.Name 它会返回用户的当前名称,但在我的情况下它是空白的。
标签: .net api permissions active-directory