【发布时间】:2014-05-21 07:26:07
【问题描述】:
我有一个通过 GenericPrincipal 设置用户凭据的凭据方法。我正在使用 asp.net MVC
public void SetCredentials(HttpContextBase context, string username, bool createPersistenceCookie)
{
FormsAuthentication.SetAuthCookie(username, createPersistenceCookie);
IIdentity identity = new GenericIdentity(username);
IPrincipal principal = new GenericPrincipal(identity,new []{"standart"});
context.User = principal;
}
我想在控制器操作中检查 User.IsInRole("standart"),但它返回 false。
- context.User.IsInRole("standart") //返回false
我想在我的应用程序中使用 context.User,但它总是返回 false。
【问题讨论】:
-
上下文用户和CurrentPrincipal一样吗?
-
Thread.CurrentPrincipal.IsInRole("standart")返回 true 的事实与您帖子的标题相矛盾。我建议您调查一下 Thread.CurrentPrincipal 和 context.User 是否与您的principal相同。
标签: asp.net asp.net-mvc asp.net-mvc-4