我将github上的TodoSPA示例应用程序修改为1.0.0-rc1-update1应用程序,因为这是我们正在开发的平台。我不得不对Startup进行更改,但保留了客户端代码。该示例使用OAuth2隐式流与ADAL客户端库。当我单击TodoList链接时,我对身份验证服务器进行身份验证,客户端调用TodoListController类中的Get方法。到现在为止还挺好。 Get方法执行以下操作。
string owner = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
IEnumerable<Todo> currentUserToDos = db.Todoes.Where(a => a.Owner == owner);
FindFirst抛出空引用异常。为什么我没有获得NameIdentifer声明?如果我使用ClaimsPrincipal.Current.Claims得到所有索赔,我看不到我想象的那么多。 (Visual Studio 2015观察窗口的结果。)