5

Google OAuth2'yi uyguladık ve ASPNetUsers tablosunda kullanıcılar oluşturur. Bu iyi çalışıyor ve User.Identity.GetUserName() aracılığıyla kimliği doğrulanmış kullanıcıyı görebiliriz. Biz role Bu kullanıcıya eklersenizKullanıcının Rolü veya Hak Talepleri Google OAuth2 aracılığıyla oluşturuldu.

, AspNetRoles ve AspNetUserRoles masa, ile güvenli herhangi yöntemlerle, "MyCustomRole" demek:

[Authorize(Roles="MyCustomRole")] 

erişilemiyor. Uygulama, kimliği doğrulanmış kullanıcıyı Giriş denetleyicisine iletir.

Harici olarak kimliği doğrulanmış bu kullanıcıları, [Yetkilendir (Roller = "")] özniteliği için erişilebilen Rolleri olan Rollere eklemek için uygun mekanizma nedir? Emin

+0

benim Eylem kodunu koyabilir newget paketin PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre bu Nuget çalıştırın. Yani, [Authorize (Roller = "MY_ROLE_ID")] yerine, yalnızca [Authorize (Roles = "MyRole")] olmalıdır. OAuth2 üzerinden harici sistemler tarafından doğrulanmış olan kullanıcılara, başka herhangi bir kullanıcıyla olduğu gibi AspNetUserRole'a satır ekleyerek, rolleri ekleyebilmek güzel ve oldukça basittir. –

cevap

0

değil, kullandığınız ama bunu test etmek için bu kodu

[HttpPost] 
    public async Task<ActionResult> AddUserToRole() 
    { 
    var result = await UserManager.AddToRolesAsync(User.Identity.GetUserId(), 
new[]{"YourCustomRole"}); 
    if (!result.Succeeded){ 
     return View(); 
    } 
    else{ 
     return RedirectToAction("index"); 
    } 
    } 

kullanarak istediğiniz neyi başarmak asp identity hangi sürümünü boş bir projeyi boş oluşturmanız gerekebilir! Daha sonra o zaman Ben filtresinde, İsim yerine Kimliği kullanıyordum çıkıyor UsersAdmin contoller