2017-04-03 15 views
0

web apiを使用してすべての役割を取得しようとしましたが、役割はありませんでした。 すべての役割をユーザーごとに欲しいです。しかし私は私の質問に何の役割も持てません。あなたは何が問題なのかを教えてくれますか?web api mvc Cでロールを取得する方法は?

ここで、この私のコード:

var res = System.Web.Security.Roles.GetRolesForUser("abc.com").FirstOrDefault(); 
var r = System.Web.Security.Roles.GetAllRoles().ToList(); 

私はこのコードの書き込みをしようと持っていますが、私は役割を追加しても、この「abc.com」ユーザの役割を追加している私のデータベース内の任意の役割を取得did't。

+0

'User.IsInRole(" RoleName ")はどうでしょうか? –

+0

私もこのUser.IsInRole( "Admin")を試していますが、falseになっていますが、私のdb Adminロールが利用可能です。イムは、このコード 'を追加した後、その後 – coderwill

+0

<= "System.Web.Security.SqlRoleProvider" のconnectionStringName = "DefaultConnectionを" のapplicationName名= "AspNetSqlRoleProvider" タイプを追加= "/" /> 'このようなエラーが発生しました。' System.Data.SqlClient.SqlException:無効なオブジェクト名 'dbo.aspnet_SchemaVersions'。 ' – coderwill

答えて

1

上記のコメントで触れたように、ユーザーは単純なコントローラメソッドではなく、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; 

に追加する必要がありますそれ!助けがあれば、答えとしてマークすることを忘れないでください:)

関連する問題