Es wäre eine einfache Sache, SimpleMembers zu einem MVC4-Web hinzuzufügen. Nicht so. Der Vorlagencode (z. B. C#) ist gut geeignet, um ihn zu unterstützen, aber web.config ist meistens agnostisch - ohne Elemente, die einen bestimmten Sicherheitsmechanismus konfigurieren würden. Ich habe Scott Allens MVC4-Tutorial zu Pluralsight verfolgt - eine gemischte aspnet-Mitgliedschaft mit EF-Sachen. Vielleicht habe ich etwas verpasst, aber C# Membership-Klassen haben nicht mit der Aspnet-Mitgliedschaft interagiert, sie haben SimpleMembership gemacht. Also habe ich aspnet-Membership entfernt, aber jetzt kann ich den PackageManager nicht mehr auf 'update-database' bringen. Es beschwert sich "Sie müssen die Methode WebSecurity.InitializeDatabaseConnection aufrufen ...". Also, ich habe eine _AppStart.cshtml Datei mit dem Anruf hinzugefügt, aber PM scheint nicht bewusst. _AppStart.cshtml:_AppStart.cshtml, PackageManager, WebMatrix
@using WebMatrix.WebData;
@{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", true);
}
Web.config:
<appSettings>
<add key="enableSimpleMembership" value="true" />
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<roleManager enabled="true" defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
</providers>
</roleManager>
<membership defaultProvider="simple">
<providers>
<clear/>
<add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership
Configuration.cs:
protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context)
{
context.Departments.AddOrUpdate(d => d.Name,
new Department() { Name = "Engineering" },
new Department() { Name = "Sales" },
new Department() { Name = "Shipping" },
new Department() { Name = "Human Resources" }
);
SimpleRoleProvider roles = new WebMatrix.WebData.SimpleRoleProvider();
SimpleMembershipProvider membership = new SimpleMembershipProvider();
if (!roles.RoleExists("Admin"))
{
roles.CreateRole("Admin");
}
//if (membership.GetUser("ej", false) == null)
//{
// membership.CreateUserAndAccount("ej", "[email protected]", false);
// string[] u = { "ej" };
// string[] r = { "Admin" };
// roles.AddUsersToRoles(u, r);
//}
}
Die Rolle "Admin" wird nicht erstellt.?
Sie bitte Ihre Code-Beispiele verallgemeinern und lokalisieren, was das eigentliche Problem, das Sie haben, ist. –
Wo in Ihrer Projektnavigation die Datei hinzugefügt? Ich habe es der Wurzel der Web-App hinzugefügt und es hat für mich funktioniert. Grüße – Jaime