从实现IHttpModule的类调用时,Claim为null,但从控制器访问时不为null

时间:2018-05-19 21:11:38

标签: c# claims-based-identity

我有一个API应用程序,我有这个代码:

public class MyModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest);
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        var myClaim = (string)new ClaimProvider().GetClaim(Thread.CurrentPrincipal, CustomClaimTypes.Culture);            
    }
}

然后在控制器中:

public MyViewModel Get(int id)
{
    return GetById(id, new ClaimProvider().GetClaim(Thread.CurrentPrincipal, CustomClaimTypes.Culture));
}

如您所见,在这两个地方,我使用相同的参数调用方法GetClaim()。在控制器中,它给了我一个结果。在context_BeginRequest事件中,它返回null。为什么会这样?我需要它不是null中的context_BeginRequest,因为我想将当前文化设置在一个地方,然后在所有控制器中使用它。

0 个答案:

没有答案