Asp.Net MVC - 授权不接受我的用户

时间:2017-09-21 07:09:11

标签: c# asp.net-mvc asp.net-identity

更新:尝试使用角色,同样的问题。我在Manage / Index /上打印我的角色:它显示我既是超级用户又是授权用户,但是我看不到隐藏在@if (User.IsInRole("SuperUser")){ <html> }中的Razor页面的部分,也无法访问控制器受[Authorize(Roles = "AuthorizedUser")]

保护的操作

尝试使用内置框架保护Asp.Net MVC的部分内容。我现在正在使用标准.NET Framework多用户身份验证模板。

我希望用户能够运行除了SettingsController中的Admin之外的大部分内容。

[Authorize(Users = @"admin@mycompany.com")]

使用该电子邮件注册一个帐户,复制导航栏中返回的@ User.Identity.Name并将其粘贴到Authorize属性中,如上所示。

然而,当我登录并尝试访问Controller时,我被重定向到登录字段,就好像我根本没有登录一样。我在字符串前面和没有@的情况下尝试过它,我只用电子邮件的“管理员”部分试了一下......我究竟需要把它放到那个字符串中才能工作?在线示例通常只包含简单的名称,如下所示:

[Authorize(Users="Alice,Bob")]
public class RestrictedContentController : Controller
{
    . . .
}

但标准模板没有用户名。 User.Identity.Name返回电子邮件地址......我该怎么办?

1 个答案:

答案 0 :(得分:0)

发现问题:

我没有定义RoleManager。我只是手动实例化一个角色并将其添加到映射表中。不确定为什么它不起作用但是一旦我定义了一个角色管理器,通过Owin Context加载它,在角色管理器中创建角色然后在用户管理器中添加它我能够访问[授权]控制器功能。