C# 允许匿名查看razor页面,但授权发布
我想允许任何人查看页面,但只有授权用户才能提交表单,即使用razor页面的post方法 然而,authorize属性仅适用于C# 允许匿名查看razor页面,但授权发布,c#,asp.net-mvc,asp.net-core,razor,razor-pages,C#,Asp.net Mvc,Asp.net Core,Razor,Razor Pages,我想允许任何人查看页面,但只有授权用户才能提交表单,即使用razor页面的post方法 然而,authorize属性仅适用于PageModel级别,我可以使get+post可授权,或者两者都可匿名访问 在这种情况下,推荐的方法是什么?首先,我只会在用户经过身份验证的情况下呈现表单: @if (User.Identity.IsAuthenticated) { <partial name="_CommentForm" /> } 或者您可以发布到另一个页面,该页面仅用于处理提交内
PageModel
级别,我可以使get+post可授权,或者两者都可匿名访问
在这种情况下,推荐的方法是什么?首先,我只会在用户经过身份验证的情况下呈现表单:
@if (User.Identity.IsAuthenticated)
{
<partial name="_CommentForm" />
}
或者您可以发布到另一个页面,该页面仅用于处理提交内容,并且可以应用
Authorize
属性不要忘记使用防伪令牌(对不起,我还没有使用ASP.NET Core,所以我不知道这在这里是如何工作的).@howcheng请求验证是Razor页面中POST请求的默认设置:。
public async Task<IActionResult> OnPostAsync()
{
if(User.Identity.IsAuthenticated)
{
if(Modelstate.IsValid)
{
// blah blah
}
}
else
{
return BadRequest();
}
}