活字格提供ISecurityProvider接口。通过实现该接口,用户可以与其他系统进行集成。
本节介绍如何实现安全提供程序。
图1所示。
在Visual Studio中创建类库项目。设置项目的Framework框架为.NET Framework 4.7.2。如在解决方案资源管理器中的“引用”上右击,选择“添加引用”。
单击右下角的“浏览”,在活字格的安装目录下找到“GrapeCity.Forguncy.SecurityProvider.dll”文件并将其添加为该工程的引用。
选中“GrapeCity.Forguncy.SecurityProvider.dll”文件,右击选择“属性”,将“复制到本地”改成“False”。
在Class1.cs文件中添加代码,示例代码如下:
using GrapeCity.Forguncy.SecurityProvider; using System; using System.Collections.Generic; using System.Linq; namespace DemoPasswordSecurityProvider { public class DemoPasswordSecurityProvider : ISecurityProvider { List<User> testUsers = new List<User>(); public DemoPasswordSecurityProvider() { AddUser("User1", "TestUser1", "User1@User1.com", "User1Property"); AddUser("User2", "TestUser2", "User2@User2.com", "User2Property"); AddUser("User3", "TestUser3", "User3@User3.com", "User3Property"); } void AddUser(string userId, string userName, string email, string customProperty) { testUsers.Add(new User() { UserId = userId, Email = email, FullName = userName }); testUsers.Last().Properties.Add("customProperty", customProperty); } public string Name { get { return "DemoPasswordSecurityProvider"; } } public AuthenticationType AuthenticationType { get { return AuthenticationType.UserNameAndPassword; } } public UserInformationStorageMode UserInformationStorageMode { get { return UserInformationStorageMode.InForguncyDatabase; } } public UserInformations UserInformations => throw new NotImplementedException(); public bool AllowLogout { get { return true; } } private User GetUserInformation(string userId) { return testUsers.FirstOrDefault(u => u.UserId == userId); } public User VerifyUser(Dictionary<string, string> properties) { var userName = properties["userName"]; var password = properties["password"]; var user = GetUserInformation(userName); if (user != null && password == "123456") { return user; } return null; } } } |
其中,InForguncyDatabase为活字格存储用户信息的一种方式,另一种方式为InMemoryCache。
代码添加完成后,在名称上右击,选择“生成”或者“重新生成”,进行编译。
编译完成后,在文件资源管理器中打开该文件夹,在“bin/Debug”或“bin/Release”文件夹下,将生成的所有文件打包为.zip文件。
在用户账户管理界面的“第三方”区域,单击“上传”,选择安全提供程序.zip打包文件即可。
在活字格设计器中,选择认证模式为“第三方用户集成”,发布后即可实现自定义的用户安全程序。