U aplikaciji koristim OWIN.
Evo i malo code:
Code:
private List<Claim> GetClaims()
{
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
claims.Add(new Claim(DemoIdentity.IPClaimType, "128.236.333.2"));
claims.Add(new Claim(DemoIdentity.IdClaimType, "12345"));
claims.Add(new Claim(ClaimTypes.Name, "Assil"));
claims.Add(new Claim(ClaimTypes.Name, "Abdulrahim"));
var roles = new[] { "Admin", "Citizin", "Worker" };
var groups = new[] { "Admin", "Citizin", "Worker" };
foreach (var item in roles)
{
claims.Add(new Claim(DemoIdentity.RolesClaimType, item));
}
foreach (var item in groups)
{
claims.Add(new Claim(DemoIdentity.GroupClaimType, item));
}
return claims;
}
private void SignIn(List<Claim> claims)
{
var claimsIdentity = new DemoIdentity(claims,
DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, claimsIdentity);
HttpContext.User = new DemoPrincipal(AuthenticationManager.AuthenticationResponseGrant.Principal);
}
private List<Claim> GetClaims()
{
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
claims.Add(new Claim(DemoIdentity.IPClaimType, "128.236.333.2"));
claims.Add(new Claim(DemoIdentity.IdClaimType, "12345"));
claims.Add(new Claim(ClaimTypes.Name, "Assil"));
claims.Add(new Claim(ClaimTypes.Name, "Abdulrahim"));
var roles = new[] { "Admin", "Citizin", "Worker" };
var groups = new[] { "Admin", "Citizin", "Worker" };
foreach (var item in roles)
{
claims.Add(new Claim(DemoIdentity.RolesClaimType, item));
}
foreach (var item in groups)
{
claims.Add(new Claim(DemoIdentity.GroupClaimType, item));
}
return claims;
}
private void SignIn(List<Claim> claims)
{
var claimsIdentity = new DemoIdentity(claims,
DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, claimsIdentity);
HttpContext.User = new DemoPrincipal(AuthenticationManager.AuthenticationResponseGrant.Principal);
}
Kada na serverskoj strani postavim:
Code:
[Authorize(Roles = "Admin")]
public ActionResult About()
{
return View();
}
[Authorize(Roles = "Admin")]
public ActionResult About()
{
return View();
}
Dobijam grešku da ne može da pristupi metodi.
Kao da nevidi rolu.
A kada probam bez role samo [Authorize] sve radi dobro.
Da li ima neko neki savet, molim.
Hvala unapred!
Patak