簡體   English   中英

ASP.NET MVC 4-自定義成員資格和角色實體未更新

[英]ASP.NET MVC 4 - Custom Membership & Role Entities Not Updating

我正在使用C#和Entity Framework開發我的第一個ASP.NET MVC 4項目,並且希望使用自己的SQL Server數據庫和表來實現自定義成員資格和角色。

我開發了兩個類,分別稱為“ CustomMembershipProvider”(繼承於MembershipProvider)和“ CustomRoleProvider”(繼承於RoleProvider)。 這兩個類在第一次執行時似乎都能正常工作,但是當我手動更新SQL Server中的字段時(例如,更改“權限名稱”或“權限描述”),我在Entity上執行的LINQ查詢似乎已過時。

為了清楚起見,在我的“權限”表(tblRights)中控制角色,該表包含諸如“ RightName”和“ RightDescription”之類的字段名稱。

下面是我執行的代碼的示例,該代碼返回一個包含Role / Right值(例如“ Operator”和“ Manager”)的字符串數組:

namespace MyProject.Classes
{
    public class CustomRoleProvider : RoleProvider
    {
        private MyEntities db = new MyEntities();

        public override string[] GetRolesForUser(string username)
        {

            tblOperator _tblOperator = (from prod in db.tblOperators
                                        where prod.Username == username
                                        select prod).FirstOrDefault();

            var roles = _tblOperator.tblOperatorRights.Where(m => m.WorkCentreID == 1).ToArray();

            return roles.Select(m => m.tblRight.RightName).ToArray();
        }
    }
}

現在,假設我手動更新SQL Server,並將角色名稱從“ Manager”更改為“ Administrator”,則下次執行此代碼時,它仍將返回“ Operator”和“ Manager”,而不是“ Operator”和“ Administrator”。

誰能看到我要去哪里錯了? 非常感謝您的協助。

克里斯,問候

感謝@BenRobinson,

如此簡單,卻如此有效! 我是C#的新手,所以像這樣的小事一直在躲避我! 謝謝! 完整的代碼如下:

namespace MyProject.Classes
{
    public class CustomRoleProvider : RoleProvider
    {
        private MyEntities db;

        public override string[] GetRolesForUser(string username)
        {
            db = new MyEntities();

            tblOperator _tblOperator = (from prod in db.tblOperators
                                        where prod.Username == username
                                        select prod).FirstOrDefault();

            var roles = _tblOperator.tblOperatorRights.Where(m => m.WorkCentreID == 1).ToArray();

            return roles.Select(m => m.tblRight.RightName).ToArray();
        }
    }
}

克里斯,問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM