awaisshabir Ответов: 1

Я мое приложение я использую ASP identity


я
 create asp.net identity application in this application i used custom class Name Called ApplicationRole and That class is inherited with IdentityRole 

public class ApplicationRole:IdentityRole
{
       public ApplicationRole():base()  { }
       public bool IsSuperAdmin { get; set; }
}
 and then i used this class on the <pre lang="C#">OnModelCreating Method</pre>

protected override void OnModelCreating(DbModelBuilder modelBuilder)
       {
           base.OnModelCreating(modelBuilder);
           modelBuilder.Entity&lt;ApplicationUser&gt;().ToTable(&quot;tblUser&quot;).Property(x =&gt; x.Id).HasColumnName(&quot;UserID&quot;);
           modelBuilder.Entity&lt;ApplicationRole&gt;().ToTable(&quot;tblRoles&quot;).Property(x =&gt; x.Id).HasColumnName(&quot;RoleID&quot;);
           modelBuilder.Entity&lt;IdentityUserRole&gt;().ToTable(&quot;tblUserRole&quot;).Property(x =&gt; x.RoleId).HasColumnName(&quot;RoleID&quot;);
           modelBuilder.Entity&lt;IdentityUserRole&gt;().ToTable(&quot;tblUserRole&quot;).Property(x =&gt; x.UserId).HasColumnName(&quot;UserID&quot;);
           modelBuilder.Entity&lt;IdentityUserClaim&gt;().ToTable(&quot;tblUserClaim&quot;).Property(x =&gt; x.Id).HasColumnName(&quot;ClaimID&quot;);
           modelBuilder.Entity&lt;IdentityUserLogin&gt;().ToTable(&quot;tblUserLogin&quot;);


       }
after this i used Add-migrations and then update-DataBase
now i opened sql Server it will create aspnetRole table extra


Что я уже пробовал:

открытый класс ApplicationRole : IdentityRole
{
public ApplicationRole (): base() { }
общедоступный виртуальный офис свойства officeid { получить; набор; }
public bool IsSuperAdmin { get; set; }
}

офис общественного класса
{
[Ключ]
public long OfficeID { get; set; }
public string OfficeName { get; set; }
общедоступный виртуальный интерфейс ICollection&ЛТ;applicationuser> у пользователя { получить; набор; }
общедоступный виртуальный интерфейс ICollection&ЛТ;applicationrole&ГТ; роль { получить; набор; }
}



охраняемых переопределить недействительными OnModelCreating(DbModelBuilder в modelbuilder)
{

база.OnModelCreating (modelBuilder);
для построения модели.Entity & lt;ApplicationUser> (). ToTable("пользователь").Собственность(х => У Х.ИД).HasColumnName("Идентификатор Пользователя");
для построения модели.Entity< IdentityUserRole> (). ToTable ("UserRole");
для построения модели.Entity< IdentityUserClaim> (). ToTable("UserClaims").Свойство (x => x.Id). HasColumnName ("ClaimID");
для построения модели.Сущность<IdentityUserLogin и GT;().ToTable("Логическое_имя_пользователя");
для построения модели.Entity & lt;ApplicationRole> (). ToTable("роли").Свойство (x => x.Id). HasColumnName ("RoleID");

}

1 Ответов

Рейтинг:
1

jkirkerx

Что ж, я рискну получить здесь взбучку за свой анусер.

Насколько мне известно, ASP Identity - это законсервированное решение, написанное Microsoft, чтобы предоставить вам безопасный способ хранения идентификационной информации. Он включает в себя все компоненты, необходимые в App_Start для программирования параметров, моделей и контроллеров с представлениями, которые работают на 100% после настройки. У него есть все под капотом.

Конечно, вы можете настроить его, но для того, чтобы настроить или изменить его, вам придется перепроектировать, как он работает, чтобы вы могли понять, как его изменить. С учетом сказанного я попытался сделать то же самое около 7 месяцев назад и потратил на это около 2 дней.

Наконец я понял, что ключевые области, в которых я хотел бы изменить, были скомпилированы в DLL для ASP Identity, и без исходного кода я не мог закончить свои модификации. Я действительно сделал это мимо вашей точки зрения, что ваш вопрос отражает.

Поэтому я закончил чистить идею и начал с нуля создавать новую программу идентификации, которая была адаптирована к моим потребностям. Я использовал знания реверс-инжиниринга, которые получил в качестве основы своего проекта, а затем удалил идентичность ASP из своего проекта.