在ADFS身份验证之前获取当前用户

时间:2016-02-16 17:26:20

标签: c# authentication sharepoint adfs httpmodule

我目前正在编写HttpModule,希望收集当前登录的用户,并在他们尝试使用Windows凭据进行身份验证时重定向,而不是使用有效的ADFS声明/凭据。< / p>

到目前为止,我已尝试过以下方法:

SPContext.Current.Web.CurrentUser;
HttpContext.Current.User.Identity.Name;
WindowsIdentity.GetCurrent().Name;
HttpContext.Current.Request.Url.AbsoluteUri;
HttpContext.Current.Request.LogonUserIdentity;

我也在查看IClaimsIdentity声明和HttpRequest.Params。

我发现,因为在身份验证过程中存在一些重定向,所以模块会被多次命中(PreRequestHandlerExecute事件)。我还发现,在从ADFS收到结果之前,SPContextHttpContext用户为空。 WindowsIdentity用户是“NT AUTHORITY \ IUSR&#39;直到它到达ADFS,如果使用IE并且设置被保存,它将被更改为正确的帐户。

有没有办法知道(在ADFS参与之前)将被发送以获得索赔的用户?我想它会在HttpRequest中,但到目前为止我什么都没找到。我对访问用户感兴趣,因此我可以根据需要重定向并使用有效凭据强制注销/登录,以便我可以阻止Windows帐户用于身份验证。好像WindowsIdentity似乎是正确的道路,但如果它总是一样,那就不是特别有用了。

0 个答案:

没有答案