10K*_*KY4 7 authorization roles c#-4.0 asp.net-mvc-4
我在.NET MVC 4应用程序中使用自定义登录验证.但是我无法通过Web.config文件实现角色授权.
我试过如下:
if(loginvalid)
{
var claimsIdentity = new Claims.ClaimsIdentity(
new[]
{
new Claims.Claim(Claims.ClaimTypes.NameIdentifier, "username"),
new Claims.Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity", "http://www.w3.org/2001/XMLSchema#string"),
new Claims.Claim(Claims.ClaimTypes.Name,"username"),
new Claims.Claim(Claims.ClaimTypes.Role, "admin"),
},
"CustomApiKeyAuth"
);
var principal = new Claims.ClaimsPrincipal(new[] { claimsIdentity });
System.Threading.Thread.CurrentPrincipal = principal;
System.Web.HttpContext.Current.User = principal;
var test1 = User.Identity.IsAuthenticated;
// here roleNames variable is always empty.
string[] roleNames = Roles.GetRolesForUser();
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,roleNames变量始终为空.我究竟做错了什么?
和Web.config代码:
<location path="token.axd">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |