Hi
We have been using a form action to logout within our TelerikMenu:
<TelerikMenu Data="@MenuItems">
<ItemTemplate Context="item">
@{
if (item.IsForm)
{
<form method="post" action="@item. Action">
<AntiforgeryToken />
<input type="hidden" name="ReturnUrl" value="/" />
<input type="submit" value="@item. Text"/>
</form>
}
else
{
<NavLink href="@item.Url">
<span>@item.Text</span>
</NavLink>
}
}
</ItemTemplate>
</TelerikMenu>
But we are now struggling with the new `<AntiforgeryToken />`. It does not seem to be able to render itself. I don't know if it has anything to do with the way it constructs itself:
private void RenderField(RenderTreeBuilder builder)
{
builder.OpenElement(0, "input");
builder.AddAttribute(1, "type", "hidden");
builder.AddAttribute(2, "name", _requestToken!.FormFieldName);
builder.AddAttribute(3, "value", _requestToken.Value);
builder.CloseElement();
}
We have managed to create a work around by basically copying the AntiforgeryToken logic into our own component i.e.:
@inject AntiforgeryStateProvider antiforgeryStateProvider
<input type="hidden" name="@_requestToken!.FormFieldName"value="@_requestToken.Value" />
@code {
private AntiforgeryRequestToken? _requestToken;
??? (){
_requestToken = antiforgeryStateProvider?.GetAntiforgeryToken();
}
}
But this means that we would have to maintain that extra code and take on the responsibility of the security it provides. Is TelerikMenu the wrong component for this or is there any better way to get this working?
Thanks,
Mark