我正试图将我的代码从现在过时的Microsoft Helper类更新到新的nuget包,以便与MVC集成Active Directory AD。示例在这里https://github.com/AzureADSamples
我的应用程序使用授权过滤器,所以代码不太相同,我已经更新了大部分,但我被困在一个翻译。
在示例中,有一个向helper类请求获取令牌的请求。
调用方法
string accessToken = AuthUtils.GetAuthToken(Request, HttpContext);
辅助方法
public static string GetAuthToken(HttpRequestBase request, HttpContextBase httpContext)
过滤器中
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
"request"在过滤器中不存在,只存在于控制器中,正确的翻译是什么?
我已经尝试过了,但它不工作,并返回一个空令牌:
string accessToken = MVCGraphServiceHelper.GetAuthToken(filterContext.HttpContext.Request, filterContext.HttpContext);
这是一个相当大的挑战,最后我无法得到在Windows示例中使用的代码。因此,我已经远离了过滤器中的HTTP上下文选项,并使用了控制台应用程序示例中的代码,该示例以不同的方式连接到图形API,并且工作得很好。此外,WIF看起来是必需的,因为它使用了微软。IdentityModel命名空间不是System。IdentityModel在。net 4.5中出现。安装Nugetpackage 'Active Directory Authentication Library'就成功了。
所有人都在工作,尽管比预期多花了3天。