我直接复制了GitHub示例代码,无法摆脱这些错误。
Error CS1061 'TokenCache' does not contain a definition for 'SetBeforeAccess'
我在using语句中包含了Microsoft.Identity.Client。
using System.IO;
using System.Security.Cryptography;
using Microsoft.Identity.Client;
namespace TokenCache1
{
static class TokenCacheHelper
{
public static TokenCache GetUserCache()
{
if (usertokenCache == null)
{
usertokenCache = new TokenCache();
usertokenCache.SetBeforeAccess(BeforeAccessNotification);
usertokenCache.SetAfterAccess(AfterAccessNotification);
}
return usertokenCache;
}
static TokenCache usertokenCache;
/// <summary>
/// Path to the token cache
/// </summary>
public static string CacheFilePath = System.Reflection.Assembly.GetExecutingAssembly().Location + "msalcache.txt";
private static readonly object FileLock = new object();
public static void BeforeAccessNotification(TokenCacheNotificationArgs args)
{
lock (FileLock)
{
args.TokenCache.Deserialize(File.Exists(CacheFilePath)
? File.ReadAllBytes(CacheFilePath)
: null);
}
}
我正在使用.NET4.5和UWP应用程序。
答案 0 :(得分:0)
这可能是由于缺少MSAL library导致的。可以从Visual Studio本身上的NuGet安装。
在Visual Studio上,选择“工具”菜单,选择“ NuGet程序包管理器”,然后选择“程序包管理器控制台”,然后键入以下命令:
Install-Package Microsoft.Identity.Client -Pre
答案 1 :(得分:0)
我遇到了同样的问题:
从packages \ Microsoft.Identity.Client.1.1.3-preview0012 \ Microsoft.Identity.Client.dll添加引用时,无法访问TokenCacheExtensions类
但是当我添加来自的引用
packages\Microsoft.Identity.Client.1.1.3-preview0012\lib\net45\Microsoft.Identity.Client.dll
然后我可以访问TokenCacheExtension类。