好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > asp.net5中用戶認證與授權(2)

asp.net5中用戶認證與授權(2)

熱門標簽:辦公用地圖標注網點怎么操作 安陸市地圖標注app 聊城智能電銷機器人電話 上海市三維地圖標注 南昌自動外呼系統線路 云南外呼系統代理 海東防封電銷卡 寧德防封版電銷卡 西寧電銷外呼系統公司

上篇文章給大家介紹了asp.net5中用戶認證與授權(1),基礎建立好了,緊接著就要創建對基礎類進行操作的類,也就是實現基礎類的增刪改查當然,為了使用asp.net5的認證機制,這些都是通過特定的接口來實現的。

比如,對于角色來說,角色管理要實現的接口如下:

   public interface IQueryableRoleStoreTRole> : IRoleStoreTRole>, IDisposable where TRole : class
   {
     IQueryableTRole> Roles { get; }
   }
   public interface IRoleStoreTRole> : IDisposable where TRole : class
   {
     TaskIdentityResult> CreateAsync(TRole role, CancellationToken cancellationToken);
     TaskIdentityResult> DeleteAsync(TRole role, CancellationToken cancellationToken);
     TaskTRole> FindByIdAsync(string roleId, CancellationToken cancellationToken);
     TaskTRole> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken);
     Taskstring> GetNormalizedRoleNameAsync(TRole role, CancellationToken cancellationToken);
     Taskstring> GetRoleIdAsync(TRole role, CancellationToken cancellationToken);
     Taskstring> GetRoleNameAsync(TRole role, CancellationToken cancellationToken);
     Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, CancellationToken cancellationToken);
     Task SetRoleNameAsync(TRole role, string roleName, CancellationToken cancellationToken);
    TaskIdentityResult> UpdateAsync(TRole role, CancellationToken cancellationToken);
   }

其實,也沒什么復雜,一個是獲得所有預定義角色的列表,另一個是關于角色的增刪改查而已,代碼如下:

 public class HDRoleStoreTRole> : IQueryableRoleStoreTRole>
      where TRole : HDRole, new()
    {
      /// summary>
      /// 存儲所有預定義的角色
      /// /summary>
      private readonly Dictionarystring, TRole> _roles = new Dictionarystring, TRole>();
      /// summary>
     /// 所有角色
     /// /summary>
     public IQueryableTRole> Roles
     {
       get
       {
         if (_roles.Count == )
         {
           TRole role = new TRole();
           role.Id = "admin";
           role.Name = "管理員";
           _roles.Add(role.Id, role);
           role = new TRole();
           role.Id = "user";
           role.Name = "用戶";
           _roles.Add(role.Id, role);
           role = new TRole();
           role.Id = "power";
           role.Name = "大蝦";
           _roles.Add(role.Id, role);
         }
         return _roles.Values.AsQueryable();
       }
     }
     public TaskIdentityResult> CreateAsync(TRole role, CancellationToken cancellationToken)
     {
       _roles[role.Id] = role;
       return Task.FromResult(IdentityResult.Success);
     }
     public TaskIdentityResult> DeleteAsync(TRole role, CancellationToken cancellationToken)
     {
       if (role == null || !_roles.ContainsKey(role.Id))
       {
         throw new InvalidOperationException("Unknown role");
       }
       _roles.Remove(role.Id);
       return Task.FromResult(IdentityResult.Success);
     }
     public void Dispose()
     {
     }
     public TaskTRole> FindByIdAsync(string roleId, CancellationToken cancellationToken)
     {
       if (_roles.ContainsKey(roleId))
       {
         return Task.FromResult(_roles[roleId]);
       }
       return Task.FromResultTRole>(null);
     }
     public TaskTRole> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)
     {
       return
          Task.FromResult(
            Roles.SingleOrDefault(r => String.Equals(r.Name, normalizedRoleName, StringComparison.OrdinalIgnoreCase)));
     }
     public Taskstring> GetNormalizedRoleNameAsync(TRole role, CancellationToken cancellationToken)
     {
       return Task.FromResult(role.Name);
     }
     public Taskstring> GetRoleIdAsync(TRole role, CancellationToken cancellationToken)
     {
       return Task.FromResult(role.Id);
     }
     public Taskstring> GetRoleNameAsync(TRole role, CancellationToken cancellationToken)
     {
       return Task.FromResult(role.Name);
     }
     public Task SetNormalizedRoleNameAsync(TRole role, string normalizedName, CancellationToken cancellationToken)
     {
       role.Name = normalizedName;
       return Task.FromResult();
     }
     public Task SetRoleNameAsync(TRole role, string roleName, CancellationToken cancellationToken)
     {
       role.Name = roleName;
       return Task.FromResult();
     }
     public TaskIdentityResult> UpdateAsync(TRole role, CancellationToken cancellationToken)
     {
       _roles[role.Id] = role;
       return Task.FromResult(IdentityResult.Success);
     }
   }

可以看到,在第12行,我們的方法里直接寫死了角色列表,如果相結合具體的項目的話,我相信葉良辰有一百種方法從各種數據庫、配置文件等取得角色列表,而其他程序代碼卻基本不用更改。

當然,asp.net5自帶的默認實現實現了很多其他接口,這里為了最簡單起見,只實現了最基本的。

以上就是給大家介紹的asp.net5中用戶認證與授權(2),希望大家喜歡。后續還會持續更新,請大家持續關注本站。

您可能感興趣的文章:
  • asp.net5中的用戶認證與授權(1)
  • 解讀ASP.NET 5 & MVC6系列教程(1):ASP.NET 5簡介
  • 解讀ASP.NET 5 & MVC6系列教程(2):初識項目
  • 解讀ASP.NET 5 & MVC6系列教程(3):項目發布與部署
  • 解讀ASP.NET 5 & MVC6系列教程(4):核心技術與環境配置
  • 解讀ASP.NET 5 & MVC6系列教程(5):Configuration配置信息管理
  • 解讀ASP.NET 5 & MVC6系列教程(6):Middleware詳解
  • 解讀ASP.NET 5 & MVC6系列教程(7):依賴注入

標簽:南寧 崇左 汕尾 贛州 平涼 衢州 青海 洛陽

巨人網絡通訊聲明:本文標題《asp.net5中用戶認證與授權(2)》,本文關鍵詞  asp.net5,中,用戶,認證,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《asp.net5中用戶認證與授權(2)》相關的同類信息!
  • 本頁收集關于asp.net5中用戶認證與授權(2)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 屁股又大又圆又肥岳| 欧美精品人爱a欧美精品| 99久久精品国产| 91桃色安卓版| 18成禁人视频| 在线观看国产精品| 国产凌凌漆免费完整高清| 特种部队电影免费完整版| 97久久久碰碰碰久久碰碰碰| A片毛片狠狠擼免費看| 蜜桃app| 黄色在线免费| 小早川怜子在线播放精品| 年轻的老师4未删减完整版| 悄悄解开了岳的乳罩第一章| good电影网韩国三级| 污污的视频免费| 欧美成年性色mmm| 日日噜噜夜夜狠狠久久波多野| 总攻纯肉np文| 私库tv| 欧美性一区| 欧美成人精品一区二区三区AV | 老头大鸡鸡| 多肉到处做的古文| 国产精品精品| 纲手羞羞漫画| 国产成人a人亚洲精v品无码| 久久久长综合五月天婷婷丁香| 天天舔天天舔| 成人美妇一区二区三区| 天天干狠狠操| 体育老师又黑又粗的大j8| 国产色情性黄?片免费视频| 国产婬片lA片久久久久久动漫 | 奶水奶汁全文小说| h文翁熄| free18在线日本| 爽?好舒?高H古文孕妾j| 福利在线 微拍秒拍| 亚洲欧美国产中文|