有条件地检查用户是否登录 Umbraco

Conditional check if user is logged in Umbraco

如何检查用户是否已从视图 (.cshtml) 登录到 umbraco?

我也知道如何检查用户角色。

User.Identity.IsAuthenticated 总是 returns 错误。

if( User has role = "someRole" )  
{  
    do stuff
}

我使用的是 Umbraco 版本:7.8.1

如果 User.Identity.IsAuthenticated 为假,您可能不会在用户成功验证后调用 FormsAuthentication.SetAuthCookie(username, true);

要检查身份验证和角色,请使用:

var userIsAuthenticated = Request.IsAuthenticated;
var userIsAdmin = User.IsInRole(role: "admin");

要检查 Umbraco 用户是否在 front-end 上登录,我正在使用:

var isLoggedInUmbraco = userTicket.GetUmbracoAuthTicket()!=null;
//To add a Umbraco edit link on a page:
if(isLoggedInUmbraco){
<a href="/umbraco/#/content/content/edit/@Model.Content.Id">Edit Page</a>
}

我发现此代码适用于我的应用程序:

var auth = new HttpContextWrapper(HttpContext.Current).GetUmbracoAuthTicket();  

if (auth != null)
  { <p>Name: @auth.Name</p>
    <p>ID: @auth.UserData</p>
  }

资源: "Umbraco.Web.UmbracoContext.Current.Security.CurrentUser" returns "null" for front-end requests