2017-03-09 96 views
1

我需要來自所有專家的簡單任務指導。 我正在做最後一年的項目,這是一個基於Web的應用程序。 在這個應用程序中,我必須創建幾個用戶,例如會計師會管理費用,管理員將管理教師和學生帳戶等。 我正在努力工作,我學會了簡單的認證。 我可以根據用戶名稱授權用戶,並允許他們訪問特定頁面或具有多個頁面的特定文件夾。 我正在通過使用表單身份驗證來完成此操作。 但是 現在我想創建用戶角色併爲不同的用戶分配不同的角色,這樣我就不必在Web配置文件中添加每個用戶名。 請給我建議最簡單的方法。是否有任何書籍,文章或YouTube視頻,我可以從中瞭解它? 我已經搜索了堆棧溢出和msdn,但我無法理解。 我在等待你的建議, 在此先感謝。 我也不在MVC工作。 我使用.NET 4.5時,Visual Studio 2012和SQL Server 2014在Asp.net Web應用程序項目中創建用戶角色

+0

的可能的複製[Windows身份驗證,並通過數據庫添加授權角色 - MVC asp.net](http://stackoverflow.com/questions/32589863/windows-authentication-and-add-authorization-roles-through -database-mvc-asp-ne) – mason

回答

1

您可以通過這種方式連接角色的用戶:在globl.asax 添加以下事件,讀角色分配給用戶登錄,創建一個新的GenericPincipal並將其分配給用戶。

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
     { 

      var app = (HttpApplication) sender; 
      var ctx = app.Context; 

      if (ctx.User != null) 
      { 
       //Read the roles from database for current user, create a new Principal, attach the principal to the user (im using EF)    
       using (var context = new BackendDbContext()) 
       { 
        var user = context.Set<User>().Find(Convert.ToInt32(ctx.User.Identity.Name)); 
        var identity = new GenericIdentity(user.UserId.ToString()); 
        var principal = new GenericPrincipal(
         identity, 
         new[] {user.UserRoleId.ToString()}); 

        ctx.User = principal; 
       } 
      } 
     } 
+0

我已經將我的註冊用戶存儲在sql數據庫中,並且此用戶通過比較用戶名和用戶表的密碼來登錄到Web應用程序....現在,我將如何爲該用戶分配一個角色? –

+0

就像上面的例子:從當前用戶的數據庫中讀取角色/角色並將角色設置爲主體 –

+0

如何在數據庫中創建角色? 你的意思是我必須在數據庫中創建一個具有兩列角色ID和角色名稱的表,然後訪問該表? 請你能爲此寫一個完整的程序嗎? –

相關問題