正如你在上面的評論中提到的那樣,你試圖通過一個簡單的控制器方法而不是Api控制器來獲取角色。所以,檢查我的婁代碼,
假設你的控制器名稱爲AdminController,則添加這些婁代碼,
public class AdminController : Controller
{
//rest code
private ApplicationUserManager _userManager;
public AdminController()
{
}
public AdminController(ApplicationUserManager userManager)
{
UserManager = userManager;
}
public ApplicationUserManager UserManager
{
get
{
return _userManager ??
HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
//then rest code, what ever you have
//Add this bellow code inside the Method, where you want to fetch the
//roles by username
var myRoles = UserManager.FindByName("[email protected]").Roles;
//then rest code
是的,你需要添加引用
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
這它!如果有幫助,不要忘記標記爲答案:)
'User.IsInRole(「RoleName」)'? –
我也嘗試這個User.IsInRole(「管理員」),但得到錯誤,但我的數據庫管理員角色可用。 – coderwill
然後IM後添加此代碼' <添加名稱= 「AspNetSqlRoleProvider」 類型= 「System.Web.Security.SqlRoleProvider」 的connectionStringName = 「DefaultConnection」 的applicationName =「/」/> roleManager>'在web.config然後得到這樣的錯誤'System.Data.SqlClient.SqlException:無效的對象名稱'dbo.aspnet_SchemaVersions'。' –
coderwill