Hi,
You can try this:
public class AccountController : ChallengeAccountController
{
public override Task<IActionResult> AccessDenied(string returnUrl = "", string returnUrlHash = "")
{
return Task.FromResult<IActionResult>(Challenge(new AuthenticationProperties { RedirectUri = GetRedirectUrl(returnUrl, returnUrlHash) }, ChallengeAuthenticationSchemas));
}
}
Can you share the full logs? (Authserver, HttpApi.Host, Web) shiwei.liang@volosoft.com
Hi,
Because Blazor web assembly needs to load all DLLs at the first time. We can do nothing, You can see many discussions about Blazor wasm: https://www.reddit.com/r/Blazor/comments/y0w90j/blazor_wasm_terrible_performance_score/
maybe the Blazor server is more suit for you.
See: https://support.abp.io/QA/Questions/4645/Blazor-wasm-application-hang-after-login , https://support.abp.io/QA/Questions/4748/Redirect-to-login-page-after-logout and https://support.abp.io/QA/Questions/1152/How-to-to-Login-page-when-accessing-the-app-and-after-logout#answer-5c9c7a51-3689-9ec8-e5b6-39fbc698d514
The situation is still the same.
Hi,
It looks like a problem, I will check it out.
Hi,
It's hard to automatically remove permissions since they come from multiple modules, so you need to manually configure the permissions that need to be deleted.
For example:
Configure<AbpPermissionOptions>(options=>
{
options.DeletedPermissions.Add("Permission name should be removed.")
});
Hi,
If you configure the module dependency correctly, you can run the command in EntityFrameworkCore of the main application.
I need to use the module as a part of any solution I make and I need the migrations to be a part of it.
It is already there. you can use the module in any solution. there are two ways:
This way, you need to copy the modue source code always when you start a new solution.
You can push the module to your private Nuget server, and install them to the solution, just like we do:
Hi,
1
This is a known problem, we have fixed it. you can try:
Remove the following code:
if (context.Toolbar.Name != StandardToolbars.Main)
{
return Task.CompletedTask;
}
Put the Default.cshtml file in the Acme.BookStore.Web.Public/Themes/LeptonX/Components/SideMenu/MobileNavbar folder:
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.SideMenu.MainMenu
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.Common.MobileGeneralSettings
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.SideMenu.MobileNavbar
@using Volo.Abp.LeptonX.Shared.Localization
@using Microsoft.Extensions.Localization
@using Volo.Abp.Users
@model MobileNavbarViewModel
@inject ICurrentUser CurrentUser
@inject IStringLocalizer<LeptonXResource> L
<div class="lpx-mobile-navbar-container">
<div class="lpx-mobile-navbar">
<ul class="lpx-mobile-nav-tabs">
@foreach (var viewModel in Model.SelectedMenuItems)
{
var url = string.IsNullOrEmpty(viewModel.MenuItem.Url) ? "#" : Url.IsLocalUrl(viewModel.MenuItem.Url) ? Url.Content(viewModel.MenuItem.Url.EnsureStartsWith('~')) : viewModel.MenuItem.Url;
<li class="lpx-mobile-nav-tab">
<a id="@viewModel.MenuItem.ElementId" href="@url" target="@viewModel.MenuItem.Target" class="lpx-mobile-nav-item @viewModel.MenuItem.CssClass">
<i class="menu-item-icon @viewModel.MenuItem.Icon" aria-hidden="true"></i>
<span class="mobile-item-text"> @viewModel.MenuItem.DisplayName </span>
</a>
</li>
}
<li class="lpx-mobile-nav-tab menu-toggle">
<a href="javascript:void(0)" class="lpx-mobile-hamburger" data-lpx-mobile-menu-toggle="routes">
<span class="hamburger-icon" aria-hidden="true">
<span class="icon-part"></span>
<span class="icon-part"></span>
<span class="icon-part"></span>
<span class="icon-part"></span>
<span class="icon-part"></span>
<span class="icon-part"></span>
</span>
</a>
</li>
<li class="lpx-mobile-nav-tab">
<a class="lpx-mobile-nav-item" data-lpx-mobile-menu-toggle="settings">
<i class="menu-item-icon bi bi-gear-wide-connected" aria-hidden="true"></i>
<span class="mobile-item-text">Settings</span>
</a>
</li>
<li class="lpx-mobile-nav-tab">
@if (CurrentUser.IsAuthenticated)
{
<a class="lpx-mobile-nav-item" data-lpx-mobile-menu-toggle="user">
<div class="lpx-avatar">
<img class="lpx-avatar-img" src="@Model.ProfileImageUrl" alt="@CurrentUser.UserName avatar" />
</div>
<span class="mobile-item-text">@CurrentUser.UserName</span>
</a>
}
else
{
<a href="~/account/login" class="lpx-mobile-nav-item">
<i class="menu-item-icon bi bi-person-fill" aria-hidden="true"></i>
<span class="mobile-item-text">@L["Login"]</span>
</a>
}
</li>
</ul>
</div>
<div class="lpx-mobile-menu hidden">
<div class="lpx-logo-container">
<a href="/">
<div class="lpx-brand-logo"></div>
</a>
</div>
<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="routes">
@await Component.InvokeAsync(typeof(MainMenuViewComponent))
</ul>
<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="settings">
@await Component.InvokeAsync(typeof(MobileGeneralSettingsViewComponent))
</ul>
<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="user">
<div class="d-flex ps-3 pe-3">
<div class="lpx-avatar me-2">
<img class="lpx-avatar-img" src="@Model.ProfileImageUrl" alt="@CurrentUser.UserName avatar" />
</div>
<div class="d-flex flex-column" style="line-height: normal">
<span class="fs-12">@L["Welcome"] <span class="color-active-text"> @CurrentUser.UserName </span> </span>
<span class="color-active-text">@CurrentUser.Name @CurrentUser.SurName</span>
<span class="fs-12">@CurrentUser.Email</span>
</div>
</div>
@if (Model.UserMenu != null)
{
foreach (var menuItem in Model.UserMenu.Items)
{
var url = string.IsNullOrEmpty(menuItem.Url) ? "#" : Url.IsLocalUrl(menuItem.Url) ? Url.Content(menuItem.Url.EnsureStartsWith('~')) : menuItem.Url;
<li class="outer-menu-item">
<a class="lpx-menu-item-link lpx-menu-item @menuItem.CssClass" href="@url" target="@menuItem.Target" id="@menuItem.ElementId">
<span class="lpx-menu-item-icon"><i class="lpx-icon bi @menuItem.Icon" aria-hidden="true"></i></span>
<span class="lpx-menu-item-text hidden-in-hover-trigger">@menuItem.DisplayName</span>
</a>
</li>
}
}
</ul>
</div>
</div>
2
You need to install those admin packages to your solution
Hi,
First of all thanks for the answer, but when I use "object extensions system" to add a new property to the AbpUsers table, it adds this property as json data in the 'ExtraProperties' field, not as a new column. Is it possible to add it as a new column?
Of course, you can check this: https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities#entity-extensions-ef-core
Another question, we want to add LicienceId as a claim (CurrentUser) but the project does not see the requested AbpClaimsServiceOptions class. We can't see LicienceId among the claims.
It's working for me.
Hi,
It's just a document update : )
It won't affect your code.