update :尝试使用角色,同样的问题。我正在manage/index/:向我打印我的角色:它向我展示了我既是超级用户又是授权用户,但是我看不到隐藏在 @if (User.IsInRole("SuperUser")){ <html> }
中的剃须刀页面的部分,也无法访问受保护的控制器操作使用[Authorize(Roles = "AuthorizedUser")]
尝试使用内置框架来保护我的ASP.NET MVC的部分。我目前正在使用标准.NET框架多个用户身份验证模板。
我希望用户能够运行大多数事情,除了settingscontroller中的管理员东西。
[Authorize(Users = @"admin@mycompany.com")]
在该电子邮件中注册了一个帐户,复制了 @user.identity.name返回的navbar中,并将其粘贴到授权属性中,如上所示。
但是,当我登录并尝试访问控制器时,我将重定向到登录字段,就像我根本没有登录一样。我在字符串前和没有 @的情况下尝试了它,我只使用电子邮件的" admin"部分尝试过它...我到底需要放入该字符串中才能正常工作?在线示例通常仅包含简单的名称:
[Authorize(Users="Alice,Bob")]
public class RestrictedContentController : Controller
{
. . .
}
但是,标准模板没有用户名。user.Identity.name返回电子邮件adress ...我该怎么办?
找到了问题:
我没有定义rolemanager。我只是手动实现了角色并将其添加到映射表中。不确定为什么它不起作用,但是一旦我定义了角色管理器,通过OWIN上下文加载了角色管理器,在角色管理器中创建了角色,然后将其添加到用户管理器中,我就可以访问[授权]控制器函数。