Open ghost opened 5 years ago
Another thing...
in _Layout.cshtml @await Html.PartialAsync("_LoginPartial") @await Html.PartialAsync("_AdminActionsPartial")
This also doesn't work.
I have to do this instead:
<partial name="_LoginPartial" />
<partial name="_AdminActionsPartial" />
I am having difficulties with the authorization as well. To confirm / iterate on what @psaeui wrote, I also used <IdentityUser>
in place of <ApplicationUser>
to get things working.
Further, in Startup.cs
I used the following:
services.AddDefaultIdentity<IdentityUser>()
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
After these changes the DB was seeded. My test admin account shows up properly in the view that supposedly filters to user role.
However, I'm still having troubles getting the authorization for the ManageUsersController to work. When the line [Authorize(Roles = Constants.AdministratorRole)]
is used above the class, my test administrator account is not able to access the page, even though the same constant is used to filter the user accounts in the DB and put them in the table as expected.
Here's what I see when I remove the [Authorize]
line:
What am I missing here?
Here's my repo: https://github.com/raquelmsmith/dotnet-todo/tree/master/AspNetCoreTodo
Any help would be appreciated!
@raquelmsmith There is a known issue in dotnet 2.1
where AddDefaultIdentity<TUser>()
does not enable roles by default. This has been fixed in 2.2
. I just updated my project and everything works. You do need to either create your own ApplicationUser
that inherits from IdentityUser
or use IdentityUser
directly.
Hi all, I have the same problem that @raquelmsmith, I even have created the ApplicationUser class, and it seem that works all except when you wanna entre in the ManagerUsers view as an admin. it's weird because Works the logic that show the link to the ManagerUsers pages if you are logged as an admin, but when you clicked on it, show the "Access denied" page... @blueknightone, I am updated my Project to .NET Core 2.2, with VS 2019, but still fail This is my repo: https://github.com/erniker/LearningASPNETCoreAndTests
It will be nice if someone could help me!
While we're piling on, I'd like to add that I've been trying to figure out how to complete the authorization section for about 3 hours now. I'm new to Identity and this section doesn't work out of the box, unlike everything prior. This issue thread is the only thing that's been able to unblock me.
Hi all, I have fixed this problem:
Keep using "ApplicationUser"
Step 1:
Go to "Startup.cs",
change "services.AddDefaultIdentity()......" to
"services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores
Step 2:
Go to web page file "AspNetCoreTodo\Views\Shared_LoginPartial.cshtml" ,
there are 2 old "IdentityUser" in this file,
change them to "ApplicationUser" like this:
Step 3:
Go to file "AspNetCoreTodo\Data\ApplicationDbContext",
change "IdentityDbContext" to "IdentityDbContext
Finally, run it again, then the DI will works.
Hopefully this helps u guys!
@RayWangQvQ helped a lot. The Logout does not work though: it just seems to refresh the page.
I have followed the book and it's very good. I have some difficulties in getting the code to work around the Authorization topic.
So for 1. I simply use IdentityUser and it works. for 2. I have replaced the services.AddIdentity.... in Startup.cs with this: services.AddDefaultIdentity()
.AddRoles()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores();
It works fine for me. Hope this helps.