【问题标题】:Using ASP.NET MVC Controller Action with authorized and unauthorized users对授权和未授权用户使用 ASP.NET MVC 控制器操作
【发布时间】:2013-04-26 18:44:18
【问题描述】:

我有一个 ASP.NET MVC 应用程序。这个应用程序有一个没有任何属性的控制器。这个控制器有一个相当复杂的动作。到目前为止,该操作已包含[AllowAnonymous]。由于其复杂性,我想与授权和未授权用户共享此操作。如果是授权用户,我将为这个复杂的操作添加一个基本部分。

我尝试按照post 中的建议添加[Authorize]。但是,无论如何,User.Identity.IsAuthenticated 总是 false。我有自己的会员数据库结构。但是,我已将其与System.Web.Security 相关联。所以,当有人登录时,我有:

FormsAuthentication.SetAuthCookie(model.Username, model.RememberMe);

到目前为止,这一切都很好。

如何允许授权和未授权用户访问控制器操作,同时确定用户是否被授权?谢谢!

【问题讨论】:

  • "'User.Identity.IsAuthenticated' 始终为 false" - 如果您使用自己的数据库结构并将其绑定到 System.Web.Security 内容中,您确定这是设置正确吗?
  • 听起来问题应该是:“为什么 User.Identity.IsAuthenticated 总是返回 false?” - 然后发布您的代码...

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


【解决方案1】:

在你的控制器/视图中试试这个:

if(Request.IsAuthenticated) 
{ 
    doAuthenticatedStuff(); 
}
else
{
    doAnonymousStuff();
}

这有帮助吗?

【讨论】:

  • 这应该可以解决问题。如果我正确阅读了开始帖子,可能只有 if 没有 else,但这只是细节。不需要授权属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 2012-03-01
  • 1970-01-01
  • 2013-05-18
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多