User token associated with the document.
public string UserToken {get; set;}
public:
property String^ UserToken
{
String^ get()
void set(String^ value)
}
UserToken # get and set (LoadDocumentOptions)
The user token associated with the document. The default value is null.
User tokens can optionally be used with a document to restrict usage. Refer to Loading Using LEADTOOLS Document Library for more information.
This example will load a document from a URL into the cache and associate it with a user token. It will then try to load the document with and without a user token and show its behavior.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Document.Writer;
using Leadtools.Document;
using Leadtools.Caching;
using Leadtools.Annotations.Engine;
using Leadtools.Ocr;
using Leadtools.Barcode;
using Leadtools.Document.Converter;
public void UserTokenExample()
{
var cache = GetCache();
var documentUri = new Uri("https://demo.leadtools.com/images/pdf/leadtools.pdf");
const string documentId = "document-with-token";
const string userToken = "my-secret";
// Load from the URI without a token
var loadDocumentOptions = new LoadDocumentOptions();
loadDocumentOptions.Cache = cache;
loadDocumentOptions.DocumentId = documentId;
Console.WriteLine("Loading a document into the cache without a user token");
using (var document = DocumentFactory.LoadFromUri(documentUri, loadDocumentOptions))
{
// Make sure it does not have a user token
Assert.IsNull(document.UserToken);
document.AutoSaveToCache = false;
document.AutoDeleteFromCache = false;
document.SaveToCache();
}
// Load from cache
var loadFromCacheOptions = new LoadFromCacheOptions();
loadFromCacheOptions.Cache = cache;
loadFromCacheOptions.DocumentId = documentId;
loadFromCacheOptions.UserToken = null;
// This should work
Console.WriteLine("Loading the document from the cache without a user token");
using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
// Make sure it does not have a user token
Assert.IsNotNull(document);
}
// Load it again and set the token
Console.WriteLine("Setting the document user token and saving it into the cache");
using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
// Make sure it does not have a user token
Assert.IsNull(document.UserToken);
// Set a token
document.UserToken = userToken;
document.SaveToCache();
}
// This should fail
Console.WriteLine("Loading the document without a user token");
using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
// Make sure it did not load
Assert.IsNull(document);
}
// This should work
loadFromCacheOptions.UserToken = userToken;
Console.WriteLine("Loading the document with a user token");
using (var document = DocumentFactory.LoadFromCache(loadFromCacheOptions))
{
// Make sure it has the same user token
Assert.IsNotNull(document);
Assert.AreEqual(userToken, document.UserToken);
}
// This should fail
loadFromCacheOptions.UserToken = null;
Console.WriteLine("Deleting the document without a user token");
bool isDeletedFromCache = DocumentFactory.DeleteFromCache(loadFromCacheOptions);
// Make sure it did not get deleted
Assert.IsFalse(isDeletedFromCache);
// This should work
loadFromCacheOptions.UserToken = userToken;
Console.WriteLine("Deleting the document with a user token");
isDeletedFromCache = DocumentFactory.DeleteFromCache(loadFromCacheOptions);
// Make sure it got deleted
Assert.IsTrue(isDeletedFromCache);
}
public ObjectCache GetCache()
{
// Create a LEADTOOLS FileCache object
var cacheDir = Path.Combine(LEAD_VARS.ImagesDir, "cache");
if (Directory.Exists(cacheDir))
Directory.Delete(cacheDir, true);
Directory.CreateDirectory(cacheDir);
var cache = new FileCache();
cache.CacheDirectory = cacheDir;
return cache;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document